non funziona la ricerca per data (data_evento)

prinzart

Utente Attivo
26 Feb 2007
40
0
0
ciao, se cerco selezionando la data nella ricerca mi tira fuori tutti i dati che sono nellla tabella del db senza filtrarmi la ricerca per data che gli ho chiesto, dove sbaglio?

<?
if ($search==1){
$dal_giorno=$aa1."-".$mm1."-".$gg1;
$al_giorno=$aa2."-".$mm2."-".$gg2;
if ($id_operatori){
$search_operatori="AND c_agenda.id_operatori like \"".$id_operatori."\"";
}
if ($id_admin){
$search_admin="AND c_agenda.id_admin like \"".$id_admin."\"";
}
if ($id_tecniche){
$search_tecniche="AND c_agenda.id_tecniche like \"".$id_tecniche."\"";
}
if ($id_admin_ins_dati_evento){
$search_admin_ins="AND c_agenda.id_admin_ins_dati_evento like \"".$id_admin_ins_dati_evento."\"";
}
if ($data_evento){
$search_data_evento="AND c_agenda.data_evento >= \"".$dal_giorno."\" AND c_agenda.data_evento <= \"".$al_giorno."\"";
}
$query="SELECT c_agenda.*, a_admin.*, a_tecniche.*, b_operatori.*, DATE_FORMAT(c_agenda.data_evento, '%d-%m-%Y')AS data_evento, DATE_FORMAT(c_agenda.data_ins_dati_evento, '%d-%m-%Y')AS data_ins_dati_evento
FROM c_agenda, a_admin, a_tecniche, b_operatori
WHERE c_agenda.id_operatori = b_operatori.id_operatori AND c_agenda.id_admin = a_admin.id_admin AND c_agenda.id_tecniche = a_tecniche.id_tecniche AND (c_agenda.id_eventi>0 ".$search_operatori.$search_admin.$search_tecniche.$search_admin_ins.$search_titolo_evento.$search_testo_evento.$search_data_evento.") AND c_agenda.titolo_evento like '%$chiave%' AND c_agenda.testo_evento like '%$chiave_due%' ORDER BY c_agenda.data_evento DESC, c_agenda.data_ins_dati_evento DESC";
$ris_query=mysql_query($query, $conn);
}
?>
 
Ultima modifica:
Sei sicuro che il tuo DB utilizzi il formato italiano DD/MM/YYYY e non quello inglese MM/DD/YYYY?
 
sono sicuro che usa quello inglese, anche perchè per fare stampare correttamente da data devo mettere nella query questo:

DATE_FORMAT(c_agenda.data_evento, '%d-%m-%Y')AS data_evento

il problema credo sia qui:

if ($data_evento){
$search_data_evento="AND c_agenda.data_evento >= \"".$dal_giorno."\" AND c_agenda.data_evento <= \"".$al_giorno."\"";
}

forse ho sbagliato qualcosa in questo if
 
Ultima modifica:
se seleziono una ricerca dei nomi dei admin questo è quello che mi stampa, e funziona correttamente, infatti ho cercato tuttti gli annunci di Rossi e infatti l'id 4 corrisponde a lui:

SELECT c_agenda.*, a_admin.*, a_tecniche.*, b_operatori.*, DATE_FORMAT(c_agenda.data_evento, '%d-%m-%Y')AS data_evento, DATE_FORMAT(c_agenda.data_ins_dati_evento, '%d-%m-%Y')AS data_ins_dati_evento FROM c_agenda, a_admin, a_tecniche, b_operatori WHERE c_agenda.id_operatori = b_operatori.id_operatori AND c_agenda.id_admin = a_admin.id_admin AND c_agenda.id_tecniche = a_tecniche.id_tecniche AND (c_agenda.id_eventi>0 AND c_agenda.id_admin like "4") AND c_agenda.titolo_evento like '%%' AND c_agenda.testo_evento like '%%' ORDER BY c_agenda.data_evento DESC, c_agenda.data_ins_dati_evento DESC

ma se cerco per data, mi dovrebbe stampare al posto di AND c_agenda.id_admin like "4" mi dovrebbe stampare AND c_agenda.data_evento>='2007-05-28' AND c_agenda.data_evento<='2007-07-16' e invece questo non me lo stampa
 
Scusa ma la variabile $data_evento da dove arriva? la passi tramite form o quesrystring?
Poi vedo che nelle variabili $dal_giorno e $al_giorno usi una data formattata nel formato aa/mm/dd... questo non è il formato inglese...
 

Discussioni simili