DJ_Deni
Новичок
Проблема с циклом и БД
Все нормально, пока if($author2[recv]>$author2[sent]) верно лишь один раз за весь цикл. Если условие верно хотябы дважды, скрипт превращается в бесконечный. Т.е загрузка страницы длится бесконечно.
Больное место: echo "У абонента на счету: ", $author[money], "<br>";
Если убрать $author[money] все работает, но скрипт теряет смысл
Как я понял, словами - проблема возникает при обращении к элеметам массива два раза подряд.
В чем проблема и как исправить?
PHP:
for ($i = 1; $i <= $maxid; $i++)
{
$ath = mysql_query("select * from bd WHERE id='$i';");
$author = mysql_fetch_array($ath);
if($author[last]<date(d)) {
$frag = false;
echo "Абонент <font color=green>ID=", $author[id], "</font> просрочен и подлежит обновлению!<br>";
$newmoney = $author[money]-$author[abon];
$cid = $author[id];
$newlast = date(d);
$fid = $author[idVN];
echo "У абонента на счету: ", $author[money], "<br>";
echo "Абонплата составляет: ", $author[abon], "<br>";
echo "Новое состояние счета (без учета трафика): ", $newmoney, "<br>";
#ОБРАЩАЕМСЯ ЗА ИНФОЙ ПО ТРАФИКУ
$ath2 = mysql_query("select * from traff WHERE filterid='$fid' order by ts desc limit 1;");
$author2 = mysql_fetch_array($ath2);
if($author2[recv]>$author2[sent]) {
$morg = $author2[recv]/1000000;
echo "Выработано трафика: ", $morg, "Mb<br>";
echo "Стоимость за трафик: ", $morg*$author[mbcost], "<br>";
$newmoneyfinal = $newmoney-$morg*$author[mbcost];
echo "<b>Новое, абсолютное состояние счета: ", $newmoneyfinal, "</b><br><hr><BR>";
}
#/ОБРАЩАЕМСЯ ЗА ИНФОЙ ПО ТРАФИКУ
mysql_query("UPDATE bd SET money='$newmoneyfinal', last='$newlast' WHERE id='$cid'");
}
Больное место: echo "У абонента на счету: ", $author[money], "<br>";
Если убрать $author[money] все работает, но скрипт теряет смысл

Как я понял, словами - проблема возникает при обращении к элеметам массива два раза подряд.
В чем проблема и как исправить?