 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[PHP] problema con le date Clicca QUI per vedere il messaggio nel forum |
Dodo |
premesso che ho provato di tutto per fare un semplicissimo confronto di due date.. qualcuno mi spiega perchè mai non funziona il codice che ho scritto, ovvero l'if mi da sempre false....
voglio semplicemente controllare se l'evento a cui mi sto registrando è già passato o meno... qualcuno può helparmi
code:
\\riceve delle variabili via POST
............
$queryanno = "SELECT anno_incontro FROM lista_incontri WHERE id = $required_incontro";
$querymese = "SELECT mese_incontro FROM lista_incontri WHERE id = $required_incontro";
$querygiorno = "SELECT giorno_incontro FROM lista_incontri WHERE id= $required_incontro";
$anno_corrente = date("y");
$mese_corrente = date("m");
$giorno_corrente = date ("d");
settype($anno_corrente, "integer");
settype($mese_corrente, "integer");
settype($giorno_corrente, "integer");
$anno_incontro = mysql_query($queryanno) or die(mysql_error());
$mese_incontro = mysql_query($querymese) or die(mysql_error());
$giorno_incontro = mysql_query($querygiorno) or die(mysql_error());
if ($anno_corrente <= $anno_incontro) {
if ($mese_corrente <= $mese_incontro) {
if ($giorno_corrente < $giorno_incontro) {
$query = "INSERT INTO accrediti (nome, cognome, email, telefono, attività, città, età, incontro) VALUES ('$required_nome', '$required_cognome', '$required_email', '$telefono', '$required_attivita', '$required_citta', '$required_eta', '$required_incontro')";
if (mysql_query($query, $db))
echo "La tua partecipazione è stata registrata correttamente, ti è stata inviata una conferma di registrazione nella tua casella email";
else
echo "Erorre durante l'inserimento";
$from="******@*****.**";
$titolo="Conferma registrazione incontro";
$testo="Ciao $required_nome. Ti Confermiamo l'avvenuta iscrizione all'incontro da te selezionato, ti invieremo pochi giorni prima un promemoria con tutti i dettagli dell'incontro .";
mail($required_email, $titolo, $testo, "From: $from");
}
}}
else {
echo "Non è possibile accreditarsi a questo incontro, in quanto scaduto"; }
|
DeepBlue |
Perché hai convertito a integer la data?
Nel DB le date sono inserite come integer?
Sicuro che le query per ottenere i dati della data dell'incontro vadano a buon fine?
Forse fai prima a convertire le date in timestamp unix e a confrontarli fra loro. Così avresti un solo if da gestire e non dovresti fare conversioni di tipo. |
Dodo |
ho già provato con timestamp unix e mi da lo stesso problema, per questo mi sono ridotto ad una soluzione a tre colonne, ma nulla :(
le ho convertite in integer pensando potesse esserci un problema di formato, ma non è neanche quello il problema...
le ho provate veramente tutte (quasi)... |
JaM |
quando non sai se i confronti vanno a buon fine metti un po' di echo sui risultati delle query e su quello che ti stampa la fnzione date...
in genere io i problemi li risolvevo all'80% in questo modo ;) |
korn |
code: $querydata = "SELECT giorno_incontro,mese_incontro,anno_incontro FROM lista_incontri WHERE id = $required_incontro";
$row = mysql_fetch_array(mysql_query($querydata));
$dataincontro = mktime(0,0,0,$row[1],$row[0],$row[2]);
$datadioggi = mktime(0,0,0,date("m"),date("d"),date("Y"));
if ($dataincontro < $datadioggi) {
$query = "INSERT INTO accrediti (nome, cognome, email, telefono, attività, città, età, incontro) VALUES ('$required_nome', '$required_cognome', '$required_email', '$telefono', '$required_attivita', '$required_citta', '$required_eta', '$required_incontro')";
if (mysql_query($query, $db))
echo "La tua partecipazione è stata registrata correttamente, ti è stata inviata una conferma di registrazione nella tua casella email";
else
echo "Erorre durante l'inserimento";
$from="******@*****.**";
$titolo="Conferma registrazione incontro";
$testo="Ciao $required_nome. Ti Confermiamo l'avvenuta iscrizione all'incontro da te selezionato, ti invieremo pochi giorni prima un promemoria con tutti i dettagli dell'incontro .";
mail($required_email, $titolo, $testo, "From: $from");
} else {
echo "Non è possibile accreditarsi a questo incontro, in quanto scaduto";
}
Attento, date("y") è diverso da date("Y"), forse è stato quello. |
Dodo |
si avevo notato e corretto... ma nulla ancora...
cmq grazie a tutti.. l'unica cosa è da controllare come giustamente ha detto JAM ogni query cosa stampa....
spero che il mio problema non rientri nel 20 % :D |
yeah |
Scusa se magari ti mando fuori strada (di mysql ho letto qualche pag di un libro :)) ma in accordo con qui
mysql_query() ritorna una risorsa.
quindi devi elaborare con mysql_fetch*(), come fa korn. |
Dodo |
dici?...sto andando proprio a lavoro... provo e ti dico :D |
Dodo |
ma sono così rincoglionito da non essermi accorto che quello di korn era diverso dal mio?...
pensavo fosse un quote... oh mamma :oops: |
fabpicca |
Originally posted by JaM
in genere io i problemi li risolvevo all'80% in questo modo ;)
il restante 20% lo risolvevamo invece a bestemmie |
|
|
|
|