CREATE TABLE tabela(id INT UNSIGNED NOT NULL, polje1 TEXT, polje2 TEXT, start_time TIMESTAMP NULL, current TINYINT NULL DEFAULT 0)
Code:
<?php
define('INTERVAL',2);;//dana
$table='table';
$db='db';
$user='user';
$password='password';
$host='localhost';
mysql_connect($host,$user,$password) or die('Ne mogu se konektovati');
mysql_select_db($db) or die ('Ne mogu selektovati bazu');
/** da li je trenutna mozda zastarela **/
mysql_query("UPDATE $table SET current=0 WHERE start_time IS NOT NULL AND start_time > ".(time() - INTERVAL*60*60*24));
if(mysql_affected_rows()){ /* jedna je upravo prestala da bude vazeca, postavimo novu */
mysql_query("UPDATE $table SET current=1, start_time=NOW() WHERE start_time=NULL ORDER BY RAND() limit 1 ");
}
/** trazimo jdnu koja je na redu za prikaz **/
$query="SELECT * FROM $table WHERE `current`=1";
$res=mysql_query($query);
/** ako ne postoje vrste koje zadovoljavaju */
/** nije nijedna postavljena ili su sve potrosene **/
if(!mysql_num_rows()){
$query="SELECT COUNT(*) AS cnt FROM $table";
$res=mysql_query($query);
$row=mysql_fetch_assoc($res);
if(!$row['cnt']){ /** tabela je prazna */
die('tabela je prazna ');
}
else{ /** postavimo jednu na aktivnu */
mysql_query("UPDATE $table SET current=1, start_time=NOW() ORDER BY RAND() limit 1 ");
$query="SELECT * FROM $table WHERE `current`=1";
$res=mysql_query($query);
}
/** konacno dolazimo do nase vrste */
$row=mysql_fetch_assoc($res);
print_r($row);
?>