PDA

View Full Version : immissione errata data in db da pag PHP


foxmolder5
22-06-2005, 09:08
ho una pagina php che inserisce del testo in una tabella di un db.nessun problema per l'inserimento. all'immissione del testo devo inserire anche la data di inserimento. ciò viene fatto chiamando :

$date = date("Y-d-m h:i:s");

e poi inserendo $date nella query di memorizzazione, in modo tale da inserire la data nell'apposito campo della tabella nel db.
il campo data della tabella nel db di default accetta formattazioni di tipo
"0000-00-00 00:00:00".
ora,ogni volta che inserisco la data nel db questa non mi viene memorizzata ma mi viene messo la data di default (0000-00-00 00:00:00).
se invece vado in mysql e faccio la query a mano inserendo una data a piacimento questa viene inserita senza problemi.

la query che uso è la seguente

$query = "INSERT INTO $tabella (a,b,c,d,e,f,g,h,data) VALUES('val','val2','val3','val4','val5','val6','val7','val8','$date')";

grazie

kk3z
22-06-2005, 16:04
ti aiuto mostrandoti un altro modo, normalmente nel database la data viene inserita come timestamp (nelle tabelle del mio forum vedo int(10) come tipo tabella), di modo che quando la richiami la puoi riformattare come ti pare, quindi ti consiglio di usare time() come valore da inserire nella tabella e quando la devi estrarre riutilizza date().

foxmolder5
22-06-2005, 16:04
UP!! x favore un aiuto :cry:

foxmolder5
22-06-2005, 16:11
ti aiuto mostrandoti un altro modo, normalmente nel database la data viene inserita come timestamp (nelle tabelle del mio forum vedo int(10) come tipo tabella), di modo che quando la richiami la puoi riformattare come ti pare, quindi ti consiglio di usare time() come valore da inserire nella tabella e quando la devi estrarre riutilizza date().

mi sa che abbiamo risposto in contemporanea:-)
in ogni caso se ho capito bene il campo nel db deve essere di tipo int. quando vado a memorizzare la data farò per esempio

$date = time()

la memorizzo inserendo nella select $date
e poi quando la vado a richiamare,per usarla per esempio in una lista convertirò il valore int tramite time().ho capito bene?

kk3z
22-06-2005, 16:22
la memorizzo inserendo nella select $date
e poi quando la vado a richiamare,per usarla per esempio in una lista convertirò il valore int tramite time().ho capito bene?

tramite date()! altrimenti hai un timestamp inutile!

msyql_query("INSERT INTO tabella (campo1, campo2, data) VALUES ('valore1', 'valore2', '".time()."')");

//ora estraggo
$query = mysql_query("SELECT data FROM tabella LIMIT 1");
$risultati_array = mysql_fetch_array($query);
$date = date(tua_formattazione, $risultati_array['data']);

:)

foxmolder5
22-06-2005, 16:46
tramite date()! altrimenti hai un timestamp inutile!

msyql_query("INSERT INTO tabella (campo1, campo2, data) VALUES ('valore1', 'valore2', '".time()."')");


:)

mi soffermo sull'inserimento dei dati nel db. sia impostando il campo "data"nel db come int(11) che come date , la query effettuata sopra mi ritorna un'inserimento corretto in cui però il campo data avrà i valori predefiniti (0000-00-00 00:00:00).

foxmolder5
22-06-2005, 19:45
sto provando ancora ma non riesco a risolvere il problema! :cry:

pela
23-06-2005, 12:49
$date = date("Y-d-m h:i:s");
mi sa che bisogna mettere prima il mese e poi il giorno:
$date = date("Y-m-d H:i:s");

foxmolder5
23-06-2005, 14:07
grazie lo stesso, ma avevo già risolto impostando il campo del db come TIMESTAMP e non come DATE.