Cerco di essere piu' preciso:
in una form compilo i campi di due date e le invio tramite post a un pagina php.
In questa pagina lavoro le stringhe passate in questo modo:
Codice PHP:
$nomeuser=$_SESSION ['user'];
$annoi=clin ($_GET['nome']);
$mesei=clin($_GET['nome2']);
$giornoi=clin ($_GET['nome3']);
$annof=clin ($_GET['nome4']);
$mesef= clin ($_GET['nome5']);
$giornof = clin ($_GET ['nome6']);
$conf = clin ($_GET['nome7']);
$work= clin ($_GET['nome8']);
e riunisco poi le date nel seguente modo:
Codice PHP:
if (checkdate($mesei,$giornoi, $annoi) && checkdate($mesef,$giornof, $annof) )
{
$data1=mktime (0,0,0,$giornoi, $mesei, $annoi,0);
$data2=mktime(0,0,0,$giornof, $mesef, $annof,0);
Ovvero controllo prima che siano date valide e poi le trasformo in timestamp.
Ora mettiamo $data1 sia : 2009/7/17
e $data2 sia: 2009/7/24
Io voglio fare una query nel mio db, che mi restituisca eventi(se ce ne sono) che accadono tra $data! e $data2.
nel DB ogni eventi e' descritto da 2 date, datainizio e datafine.
Ora, una possibile query sarebbe quindi:
Codice PHP:
$result =doquery ("SELECT nome FROM conferences WHERE data_inizio >$data1 AND data_fine < $data2");
if (mysql_fetch_array($result) == null )
echo ('<h4>Spiacente, 0 risultati.<h4>');
else
nell'else in caso di risultati, creo la tabella e stampo i risultati.
Ora la domanda e': di per se la query e' esatta sintatticamente?
non mi da errori, ma non mi da neanche i risultati pero'.
Nel db , le date son in formato date, ovvero:

Ora come posso fare quindi?
Perche' se la query del confronto diretto non funziona, come faccio a selezionare gli eventi da me voluti?
p.s. cosi su due piedi farei nel seguente modo:
(nel file php in questione)
1) query mysql dove seleziono il campo data di tutti gli eventi presenti nel db
2)while ($row..)
per ogni campo datainizio estraggo la data e la metto in una variabile togliendo i "-".
3) stesso lavoro per i campo datafine
4)trasformo tutte le date con mktime
5)faccio il confronto in php delle date
6) se il confronto e' positivo , uso $row per stamparmi a video gli eventi
Ecco, mi pare troppo macchinoso..esiste un metodo per evitare di scrivere chili di codice per una cosa che mi sembra si possa risolvere facilmente?