Setta attivo a 0 perche' :
$qs = "update banners set attivo=0 where id='".$curr["id"]."' limit 1 " ;
Questa query viene eseguita quando entri nell'if
if( $curr["scadenza"]> $now )
quindi mettendo un po' di debug andiamo a controllare effettivamente che valori vengono controllati
Codice PHP:
function bannerChecker($opts)
{
$q = "select * from banners where attivo=1 order by scadenza desc" ;
// Carichiamo tutti i banner a partire da quelli con data di scadenza piu' alta
$ris = mysql_query($q) ;
if( !$ris )
return false ;
$now = date( "Y-m-d H:i:s" , time() ) ;
while( $curr = mysql_fetch_array($ris) )
{
// LE DATE in mysql se sono salvate di tipo datetime saranno in fomrato std unix YYYY-mm-dd HH:ii:ss e potrai fare controlli lessicografici
echo "Controllo : ". $curr["codice"]." data scadenza : ".$curr["scadenza"]." data di controllo ".$now;
// Banner scaduto
if( $curr["scadenza"]> $now )
{
echo " => [SCADUTO]
" ;
// update PER FAR SCADERE IL BANNER
$qs = "update banners set attivo=0 where id='".$curr["id"]."' limit 1 " ;
$ris = mysql_query($qs);
}
else
echo " => [OK]
" ;
}
return true ;
}
e controlla cosa stampa.