Allora, semplicemente il problema è questo:
Credevo che così funzionasse, invece non estrae niente dalla tabella.Codice PHP:$oggi = date("Y-m-d");
$query = mysql_query("SELECT * FROM accessi WHERE 'acc_data' = $oggi");
Cosa sbaglio?
Printable View
Allora, semplicemente il problema è questo:
Credevo che così funzionasse, invece non estrae niente dalla tabella.Codice PHP:$oggi = date("Y-m-d");
$query = mysql_query("SELECT * FROM accessi WHERE 'acc_data' = $oggi");
Cosa sbaglio?
Ovviamente la condizione: stringa con scritto "acc_data" uguale a "05-10-25" fallisce :wink:
Togli gli apici attorno a acc_data,
è un NOME di un campo e non un valore stringa (come ora viene interpretato).
Avevo già provato... comunque così, giusto?
Continua a non funzionare.Codice PHP:$oggi = date("Y-m-d");
$query = mysql_query("SELECT * FROM accessi WHERE acc_data = $oggi");
if (!$query) echo "Query fallita!";
La query però non fallisce, cioè, la riga che non avevo messo nel primo post non viene visualizzata...
$query = mysql_query("SELECT * FROM accessi WHERE acc_data = '$oggi'");
Ciaoo!!!!!
Grazie a tutti per l'attenzione!
Ho già provato anche quella soluzione, ma non cambia nulla.
Forse è il tipo di campo che ho scelto che è incompatibile.
http://lanpad.altervista.org/mag/acc_date.gif
Bho, non ho mai provato a fare ricerche in base ad un campo date.
Prova usando LIKE al posto di =.
Se ancora non dovessi riuscire prova a fare questa operazione direttamente in phpMyAdmin, prima manualmente (cioè scrivendo la query), e poi facendolo fare a phpmyadmin, vai in Cerca e selezioni il campo acc_data
Ciaooo!!!!!!
Ho fatto un po' di prove dirette con SQL.
L'unica condizione per cui non venga rilevata alcuna riga è che il il valore nel campo non esista.
ma la funzione mysql_num_rows ti ritorna proprio 0?
hai verificato?
Se possibile puoi postare tutta la struttura della tebella e il record incriminato?
Ciao
Leandro
Happy Slack!
No, infatti la tabella era a posto, è la query!!
Bisognava usare LIKE, come suggerito da debug.
Avevo già provato, ma forse in quel momento avevo fatto aulche altro errore.
Beh, insomma la fomra corretta e funzionante è:
Grazie!Codice PHP:$query = mysql_query("SELECT * FROM accessi WHERE acc_data LIKE $oggi ORDER BY acc_id desc");
Sono contento che il problema si sia risolto, ma c'è comunque un lato oscuro in tutto questo.
Se la query funziona utilizzando la like, deve funzionare anche con un semplice "=", a condizione che la stringa sia corretta.
Forse passavi una stringa "sporca" o era sporco il dato nella tabella.
Personalmente mi ci soffermerei un pochino per cercare di capire.
Ciao
Leandro
Happy Slack!
Mah infatti...
anche io mi aspettavo che fungesse con "=".. ma può ache darsi che mi confondo con altri dbms...
Non credo Hera!Citazione:
Originalmente inviato da heracleum
Come ho scritto qualche post più su, ho creato una tabella sul mio db e ho utilizzato una stringa SQL direttamente dall'editor.
Se mysql non supportasse il controllo di uguaglianza sulla data, sarebbe impossibile farlo anche senza PHP.
A meno che la versione montata su AV sia più vecchia di quella da me utilizzata e che non supporti questa cosa (mi sembra veramente assurdo :shock: )
Penso che farò qualche ricerca su internet, questa cosa mi ha incuriosito.
Se trovo qualcosa poi vi faccio sapere.
Ciao
Leandro
Happy Slack!