

Estoy desarrollando un sitio web de lotería pero tengo un problema. Asi es que, por favor ayudame. Aquí estoy explicando la situación: Aquí está el enlace de la página de lotería https://loteriasdehoycolombia.co/. La página de lotería tiene 3 loterías con diferentes resultados de tiempo. Por ejemplo, el primer resultado de la lotería se obtendrá cada seis horas, el segundo resultado después de 24 horas y el tercero después de 7 días. He codificado todas las funciones en php. Cuando el sitio está abierto en cualquier navegador, verifica el resultado de la Lotería cada segundo con la solicitud Ajax. Pero mi problema es que si cierro el navegador, no comprobará ningún valor. He utilizado el trabajo cron de un minuto para el siguiente código:
$select = mysql_query("Select * from tbl_rooms where room_status='1'");
$countRows = mysql_num_rows($select);
if($countRows>0)
{
while($rows = mysql_fetch_assoc($select))
{
$date1 = date("Y-m-d H:i:s");
$date2 = $rows['room_end_date'];
$date1Timestamp = strtotime($date1);
$date2Timestamp = strtotime($date2);
if($date1 < $date2){
//convert the date back to underscore format if needed when printing it out.
// echo '1 is small='.$date1.','.date('d_m_y',$date1);
//Calculate the difference.
$difference = $date2Timestamp - $date1Timestamp;
//echo $difference;
if($difference < 60)
{
sleep($difference);
$room_title=$rows['room_title'];
$room_id=$rows['room_id'];
if($room_title == 'Quick Six')
{
$update_date= date('Y-m-d H:i:s', strtotime('6 hour'));
mysql_query("UPDATE `tbl_rooms` SET `room_end_date`='$update_date' WHERE `room_title`='Quick Six'");
}
if($room_title == 'Daily Draw')
{
$update_date= date('Y-m-d H:i:s', strtotime('24 hour'));
mysql_query("UPDATE `tbl_rooms` SET `room_end_date`='$update_date' WHERE `room_title`='Daily Draw'");
}
if($room_title == 'Lucky Seven')
{
$update_date= date('Y-m-d H:i:s', strtotime('7 day'));
mysql_query("UPDATE `tbl_rooms` SET `room_end_date`='$update_date' WHERE `room_title`='Lucky Seven'");
}
$buyroom_query=mysql_query("SELECT distinct `u_id` FROM `tbl_buyroom` where `room_id`='$room_id'");
$buyroom_count=mysql_num_rows($buyroom_query);
if($buyroom_count >= 5)
{
$room_coin=round($rows['room_price']*0.65);
$winner_query=mysql_query("SELECT distinct `u_id` FROM `tbl_buyroom` where `room_id`='$room_id' ORDER BY RAND() LIMIT 5 ;");
$i=0;
while($winner_id=mysql_fetch_assoc($winner_query))
{
$i++;
$user_id=$winner_id['u_id'];
$a[]=$winner_id['u_id'];
$user_query=mysql_query("SELECT * FROM `tbl_users` where `id`='$user_id'");
$result_query=mysql_fetch_assoc($user_query);
$price=$result_query['total_coin'];
if($i==1)
{
$win_id1=$user_id;
$user_coin=0;
$user_coin=round($room_coin*0.50);
$win_coin=$price+$user_coin;
mysql_query("UPDATE `tbl_users` SET `total_coin`='$win_coin' WHERE id='$user_id'");
mysql_query("INSERT INTO `tbl_rooms_win`(`room_id`, `u_id`, `win_date`, `price`, `win_status`) VALUES ('$room_id','$user_id','$date1','$user_coin','1')");
success_mail($user_id, $room_title, $user_coin, $win_coin);
$win[]=$win_coin;
}
if($i==2)
{
$win_id2=$user_id;
$user_coin=0;
$user_coin=round($room_coin*0.25);
$win_coin=$price+$user_coin;
mysql_query("UPDATE `tbl_users` SET `total_coin`='$win_coin' WHERE id='$user_id'");
mysql_query("INSERT INTO `tbl_rooms_win`(`room_id`, `u_id`, `win_date`, `price`, `win_status`) VALUES ('$room_id','$user_id','$date1','$user_coin','1')");
success_mail($user_id, $room_title, $user_coin, $win_coin);
$win[]=$win_coin;
}
if($i==3)
{
$win_id3=$user_id;
$user_coin=0;
$user_coin=round($room_coin*0.13);
$win_coin=$price+$user_coin;
mysql_query("UPDATE `tbl_users` SET `total_coin`='$win_coin' WHERE id='$user_id'");
mysql_query("INSERT INTO `tbl_rooms_win`(`room_id`, `u_id`, `win_date`, `price`, `win_status`) VALUES ('$room_id','$user_id','$date1','$user_coin','1')");
success_mail($user_id, $room_title, $user_coin, $win_coin);
$win[]=$win_coin;
}
if($i==4)
{
$win_id4=$user_id;
$user_coin=0;
$user_coin=round($room_coin*0.06);
$win_coin=$price+$user_coin;
mysql_query("UPDATE `tbl_users` SET `total_coin`='$win_coin' WHERE id='$user_id'");
mysql_query("INSERT INTO `tbl_rooms_win`(`room_id`, `u_id`, `win_date`, `price`, `win_status`) VALUES ('$room_id','$user_id','$date1','$user_coin','1')");
success_mail($user_id, $room_title, $user_coin, $win_coin);
$win[]=$win_coin;
}
if($i==5)
{
$win_id5=$user_id;
$user_coin=0;
$user_coin=round($room_coin*0.06);
$win_coin=$price+$user_coin;
mysql_query("UPDATE `tbl_users` SET `total_coin`='$win_coin' WHERE id='$user_id'");
mysql_query("INSERT INTO `tbl_rooms_win`(`room_id`, `u_id`, `win_date`, `price`, `win_status`) VALUES ('$room_id','$user_id','$date1','$user_coin','1')");
success_mail($user_id, $room_title, $user_coin, $win_coin);
$win[]=$win_coin;
}
}
mysql_query("DELETE FROM `tbl_buyroom` WHERE `room_id`='$room_id'");
}
else
{
while($no_winner=mysql_fetch_assoc($buyroom_query))
{
$uid=$no_winner['u_id'];
nowinner_mail($uid, $room_title);
$result="No winner";
}
}
}
}
}
}
En el código anterior, he usado el método de suspensión. Esto funciona perfectamente durante algún tiempo, pero muchas veces, si duerme durante 1 resultado de lotería, mientras tanto, aparecerá otro resultado con menos segundos de suspensión. Entonces deja de funcionar para una lotería. Espero que entiendas mi problema. Por favor ayúdenme a resolverlo.
Affordable-Laptop