- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creazione Script Commenti In Php Da Zero
-
questo:
CREATE TABLEcommenti
(
id
INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
username
VARCHAR( 30 ) NOT NULL ,
commento
VARCHAR( 500 ) NOT NULL ,
data
VARCHAR( 20 ) NOT NULL
) ENGINE = MYISAM ;poi nel 2' passaggio mi dice di creare la query in un'area di testo, lì dentro che devo scrivere?
:?:()::bho:Grazie
-
Allora lascia perdere, è solo il backup della struttura della tabella che ti diceva di eseguire la query se perdevi la tabella
Ora per inserire e visualizzare i dati nella tabella vedi il post 22
-
Ciao Jeeves, funziona. Però nella data mi da problemi...
Username: dada
Commento: rtyeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Data: 01-01-1970, 1:00:00come potrei aggiustare il problema della data giusta? poi più aggiorno e più si moltiplica l'ultimo post..... strano....
Grazie di cuore poi quando ti sposi vengo a suonare al tuop matrimonio con il mio trombone
-
@Davide-Al said:
Ciao Jeeves, funziona. Però nella data mi da problemi...
Username: dada
Commento: rtyeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Data: 01-01-1970, 1:00:00come potrei aggiustare il problema della data giusta? poi più aggiorno e più si moltiplica l'ultimo post..... strano....
Grazie di cuore poi quando ti sposi vengo a suonare al tuop matrimonio con il mio trombone
data
VARCHAR( 20 ) NOT NULL
credo che si qui' il problema...prova cosi'...
data` datatime( 20 ) NOT NULLe nel form php gli dai valore NOW
-
mi fai un esempio concreto?
<?php
include "config.php";
$user=$_POST['username'];
$commento=$_POST['commento'];
// Connessione al database
$comm = mysql_query("SELECT username, commento, data FROM commenti ORDER BY data");
// Visualizzazione commenti
while($com = mysql_fetch_assoc($comm)) {
echo "<p>Username: ".$com['username']."<br>Commento: ".$com['commento']."<br>Data: ".date('d-m-Y, G:i:s', $com['data'])."</p>";
}
echo"messaggio inviato da: $user";
$query = "INSERT INTO commenti (username, commento, data) VALUES ('$user', '$commento', '$data')";
$esecuzione = mysql_query($query, $db);
//PER LA DATA, PRIMA RICHIAMO LA FUNZIONE DATE: $data = date("D/F/Y")
?>
<p>COMMENTO:
<?php
echo"$commento";
?>ti ringrazio
-
@carlitos1982: se fai così non puoi più modificare il formato della data, invece con time() sì
@Davide-Al: il 1-1-1970, 1:00:00 e time() con valore 0
time() calcola i secondi passati da quella data
Quindi nel database, al campo data, devi inserire time(), non 0
Fammi sapere...
-
Errore
**query SQL:** CREATE TABLE `commenti` ( `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
username
VARCHAR( 30 ) NOT NULL ,
commento
VARCHAR( 500 ) NOT NULL ,
data
time( 20 ) NOT NULL
) ENGINE = MYISAM
**Messaggio di MySQL: **
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( 20 ) NOT NULL
) ENGINE = MYISAM' at line 5
-
Errore
**query SQL:** CREATE TABLE `commenti` ( `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
username
VARCHAR( 30 ) NOT NULL ,
commento
VARCHAR( 500 ) NOT NULL ,
data
datatime( 20 ) NOT NULL
) ENGINE = MYISAM
**Messaggio di MySQL: **
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datatime( 20 ) NOT NULL
) ENGINE = MYISAM' at line 5
-
Davide-Al, la query che crea la tabella è quella del post 22 ;), non altre query
time() di php è quello che devi inserire nel campo data quando si aggiunge un commento, vedi sempre al post 22
-
funziona benissimo grazie sei grande nn avevo fatto caso a una cosa nel codice... grazie...
Una cosa che vorrei corregere è che quando aggiorno la pagina di replica l'ultimo post con secondi diversi ovviamente. Secondo me quando aggiorno nn fa altro che interagire cn il database e duplica l'ultimo commento.... strano.....
-
Lo sai perché avviene? Perché tu la query che inserisce i commenti e la query che li visualizza li fa nello stesso file, ma invece se fai un file per vedere i commenti e un file per aggiungere i commenti tutto questo non succede
-
ok provo a separare le parti e ti faccio sapere
-
Ciao Jeeves ma perchè quando faccio un nuovo commento mi esce prima una data sbagliata...
e poi il commento giusto? forse ho due funzioni diverse insieme?Username: davide
Commento: 3333333333333333333333
Data: 01-01-1970, 1:00:00
Username: davide
Commento: 3333333333333333333333
Data: 03-07-2008, 19:35:50
messaggio inviato da: davide
COMMENTO: 444444444444444444444444questo è il file.php
<?php
include "config.php";
$user=$_POST['username'];
$commento=$_POST['commento'];
// Connessione al database
$comm = mysql_query("SELECT username, commento, data FROM commenti ORDER BY data");
// Visualizzazione commenti
while($com = mysql_fetch_assoc($comm)) {
echo "<p>Username: ".$com['username']."<br>Commento: ".$com['commento']."<br>Data: ".date('d-m-Y, G:i:s', $com['data'])."</p>";
}
echo"messaggio inviato da: $user";
$query = "INSERT INTO commenti (username, commento, data) VALUES ('$user', '$commento', '$data')";
$esecuzione = mysql_query($query, $db);
//PER LA DATA, PRIMA RICHIAMO LA FUNZIONE DATE: $data = date("D/F/Y")
mysql_query("INSERT INTO commenti (username, commento, data) VALUES("".$username."", "".$commento."", "".time()."")");
?>
<p>COMMENTO:
<?php
echo"$commento";
?>nn riesco a capire l'errore
-
Lo sai perché? Perché se vai a vedere nel phpmyadmin il contenuto della tabella, dove vedi 1-1-1970, 1:00:00, alla voce data sta 0?
Invece lo devi sostituire con i veri secondi passati da quella data, che te li dà time() di php
Poi, devi eseguire una sola query per inserire i dati nel database, e sta sempre al post 22
-
Comunque ti faccio io una bozza dei file:
scrivicommenti.php
[php]<?php
include("config.php");
$user = $_POST['username'];
$commento = $_POST['commento'];
// Connessione al database
if($user == "" || $commento == "") {
echo "Non hai compilato tutti i campi";
} else {
mysql_query("INSERT INTO commenti (username, commento, data) VALUES("".$username."", "".$commento."", "".time()."")"); // Query di inserimento dati
}
[/php]
Ti consiglio di utilizzare un captcha comunque
vedicommenti.php
[php]<?php
include("config.php");
$formatodata = "D/F/Y"; // Il formato della data quando la visualizzi// Connessione al database
$comm = mysql_query("SELECT username, commento, data FROM commenti ORDER BY data");
// Visualizzazione commenti
while($com = mysql_fetch_assoc($comm)) {
echo "<p>Username: ".$com['username']."<br>Commento: ".$com['commento']."<br>Data: ".date($formatodata, $com['data'])."</p>";
}
?>[/php]Fammi sapere...
-
non riesco a seguirti scusa
il valore 0 nel database nn so dove andarlo a modoficare cn la data giusta..
-
Ma aspetta, l'hai trovato?
Puoi usare mktime() per trasformare una data in secondi passati da quella data, ma con gli annunci non c'entra niente.
Esempio: che data vuoi inserire? (e io ti do i secondi passati da quella data e ti faccio vedere come ho fatto;))
-
Ciao, ho provato in tutti i modi ma nn riesco ancora a risolvere il problema della prima data giusta. Ho provato sia al latyo database e sia al lato codice con i tuoi esempi, ma niente...
il problema mi rimane sempre lo stesso:
la prima data è sbagliata 1/1/1970
e le altre giustee quando aggiorno la pagina si duplica l'ultimo commento, e più aggiorno più si duplica..
nn so come risolverlo, qualcuno mi può aiutare? per favore. Grazie a tutti
-
Allora per ricavare i secondi passati da quella data a una che vuoi tu devi usare mktime() e poi lo inserisci dove nel database sta scritto 0.
Esempio:
[php]<?php
// Inserisci i dati che vuoi e ti darà i secondi passati da quella data
$giorno = "";
$mese = "";
$anno = "";
$ora = "";
$minuti = "";
$secondi = "";// E qui te li fa vedere
echo mktime($ora,$minuti,$secondi,$mese,$giorno,$anno);
?>[/php]Poi inserisci il numero di secondi che ti fa vedere nel database alla voce che a data sta scritto 0.
-
spiegati meglio, dici nel database dove sta scritto 0... !?!??? è qui che nn capisco. Sicuramente ti riferisci a data. Ma non vedo 0 nelle caselle di data