- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creazione Script Commenti In Php Da Zero
-
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
-
Hai detto che vedi un commento con quella data, no?
Ecco, il quel commento nel database al campo data dovresti mettere quello che ti ho scritto al post 47
Se non hai capito chiedi pure