a me non sembra che il between includa i valori estremi.
Nel mio esempio ho questo record:
NOTIZIA 1 data_inizio: 2007-02-03 data_fine: 2007-02-04
uso questa query per trovare la settimana corrente ed estrarre gli articoli:
Codice PHP:
function eventi() {
// Restituisce inizio (LUN) e fine (DOM) della settimana corrente e di quella successiva
$mesi = array(1=>'Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
$oggi = date('Y-n-d');
list($anno,$mese,$giorno) = explode("-",$oggi);
$numero_lunedi = $giorno - date('w') + 1;
$questo_lunedi = $anno.'-'.$mese.'-'.$numero_lunedi;
$questa_domenica = date('Y-n-d',strtotime("$questo_lunedi + 6 days"));
$prossimo_lunedi = date('Y-n-d',strtotime("$questo_lunedi + 1 week"));
$prossima_domenica = date('Y-n-d',strtotime("$questa_domenica + 1 week"));
list($anno_ql,$mese_ql,$giorno_ql) = explode('-',$questo_lunedi);
list($anno_pl,$mese_pl,$giorno_pl) = explode('-',$prossimo_lunedi);
list($anno_qd,$mese_qd,$giorno_qd) = explode('-',$questa_domenica);
list($anno_pd,$mese_pd,$giorno_pd) = explode('-',$prossima_domenica);
$questa_settimana = ($mese_ql == $mese_qd) ? "Eventi dal $giorno_ql al $giorno_qd $mesi[$mese_ql] $anno_qd"
: "Eventi dal $giorno_ql $mesi[$mese_ql] al $giorno_qd
$mesi[$mese_qd] $anno_qd";
$prossima_settimana = ($mese_pl == $mese_pd) ? "Eventi dal $giorno_pl al $giorno_pd $mesi[$mese_pl] $anno_pd"
: "Eventi dal $giorno_pl $mesi[$mese_pl] al $giorno_pd
$mesi[$mese_pd] $anno_pd";
return array($questa_settimana,$prossima_settimana);
}
list($questa,$prossima) = eventi();
echo "<h2>$questa</h2>";
$s="SELECT * FROM $table WHERE curdate() BETWEEN data_inizio AND data_fine ORDER BY categoria";
$r=mysql_query($s);
while($d=mysql_fetch_array($r)){
echo "$d[titolo]
";
}
ma non funzia!