|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 326
|
[PHP] Inserire una data in un database
Salve a tutti,
devo inserire una data in un database MySql ma ho un dubbio sulla compatibilità dei tipi. Il campo del database è dichiarato di tipo DATE....mentre nel mio file php ho 3 variabili...una contenente il mese in formato stringa...e anno e giorno in interi ! Come posso convertire le mie 3 variabili del file php in un'unica variabile compatibile con il tipo DATE di MySql ?? Esiste qlc funzione apposta...o devo cambiare qualcosa?? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 654
|
a parer mio devi cambiare approccio, poichè il campo date accetta cose come aaaa-mm-gg in numeri, devi passare da php una variabile $data=20081206 e dopo nella insert gli dai
insert into (..............) values (data='$data',.............) il tuo problema è che avendo il mese in lettere devi convertirlo in numero, e qua o usi un case o fai degli if concatenati. poi devi unire tre cose in una variabile sola, e qua boh.... è questa la parte sbatti. non puoi cambiare approccio???? la data (sia anno che mese che giorno) è un inserimento via sito da un utente, o ce l'hai come variabile e basta?
__________________
Macbook Pro 15'' Mid 2015 |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Aug 2008
Messaggi: 25
|
Ciao.
Ma i nomi dei mesi sono memorizzati come "gennaio", "febbraio", ...? Perchè se è così potresti usare la funzione strptime() per trasformare i mesi in lettere nei corrispondenti numeri: Codice PHP:
Per l'inserimento della data in mySQL ti basta concatenare il valore numerico del mese trovato con il giorno e l'anno nel formato DATA di mySQL: AAAA-MM-GG Ciao! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 326
|
la data viene inserita dall'utente attraverso una form.
ho convertito il mese in una variabile intera....ora ho tutte e 3 le variabili di tipo intero. Le ho concatenate in questo modo $data = $anno.$mese.$giorno ; in modo che ho il formato della data del tipo 20080829....ma quando vado ad inserirle nel mio DB....nn me la inserisce!!!!! Nel campo date compare il valore di default 0000-00-00! Ho provato anche a metterci i trattini prima di inserirla....ma non va uguale!!! |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Aug 2008
Messaggi: 25
|
Mmhhh, ho provato anche io e funziona...
Sei sicuro che la query vada a buon fine (quindi che non ci siano altri errori)? Potresti postarne il testo? Hai provato: Codice PHP:
Stampa anche $data per vedere se il suo valore è corretto. Ciao! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 326
|
ho risolto!!!!
il problema stava nel fatto che la variabile $data la inizializzavo in un blocco di codice e nel blocco in cui facevo la query non riconosceva l'inizializzazione precedente!!! grazie a tutti cmq |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:38.



















