Cramac
Новичок
Всем привет. Подскажите, есть простой скрипт, цикл, списание абон платы.
Так вот, выполняю вручную, все работает, заставляю крон выполнить сейчас задание (через вебмин) все работает. Само, по расписанию, срабатывает на половину, после 100-110 записи останавливается.
Что такое может быть? И как отследить проблему?
Код:
<?php
include ("inc/config.php");
include ("inc/function.php");
if (date('d')!="1")
{
echo "Сегодня не первое число/do not start";
}
else
{
$fp = fopen("/home/www/htdocs/tech/admin/log.log", "a");
$tarif_t = runSQL("SELECT * FROM tv_tariff ", $database_lan);
for ($i=0;$i<count($tarif_t);$i++)
{
$tarif[$tarif_t[$i]["id"]]=$tarif_t[$i]["summa"];
}
$user = runSQL("SELECT * FROM tv_user where is_delete<1", $database_lan);
for ($i=0;$i<count($user);$i++)
{
unset($tmp_summ);
$tmp_data=round((time()-$user[$i]["data_podkl"])/(date('t') * 24 * 60 * 60));
if ($tmp_data>0)
{
$new_balans=$user[$i]["balans"]-$tarif[$user[$i]["tariff"]];
$tmp_summ=($tarif[$user[$i]["tariff"]])*-1;
}else
{
$new_balans=$user[$i]["balans"]-($tarif[$user[$i]["tariff"]]/2);
$tmp_summ=($tarif[$user[$i]["tariff"]]/2)*-1;
}
echo $user[$i]["user_id"]." ".$user[$i]["id"]." ".(time()-$user[$i]["data_podkl"])/(28 * 24 * 60 * 60)." ".$tmp_data." ".$user[$i]["balans"]." ".$new_balans."<br>\r\n";
$upd = runSQL("UPDATE `tv_user` SET `balans` = '".$new_balans."' WHERE `id` = '".$user[$i]["id"]."' ", $database_lan);
$ins = runSQL("INSERT INTO `tv_pay` (`id`,`user_id`,`data`,`summa`,`com`) VALUES ('','".$user[$i]["user_id"]."','".time()."','".$tmp_summ."', 'Списание абон.платы по тарифу')", $database_lan);
fwrite($fp, "\r\n".$user[$i]["user_id"]." Баланс до ".$user[$i]["balans"]." после ".$new_balans." \r\n");
fwrite($fp, "UPDATE `tv_user` SET `balans` = '".$new_balans."' WHERE `id` = '".$user[$i]["id"]."' \r\n");
fwrite($fp, "INSERT INTO `tv_pay` (`id`,`user_id`,`data`,`summa`,`com`) VALUES ('','".$user[$i]["user_id"]."','".time()."','".$tmp_summ."', 'Списание абон.платы по тарифу')\r\n");
}
fwrite($fp, "Всего ".count($user)." \r\n");
fclose($fp);
}
echo "all complete";
?>
Что такое может быть? И как отследить проблему?