<?PHP
$p=0;
for ($t=0; $t<=$max_t; $t++) {$p=$p+$previous[$t];}
if ($p==0)
{ for ($l=$i-1; $l>=1; $l=$l-1)
{ $prev = mysql_fetch_row(mysql_query("SELECT $select_previous FROM `energobalans$e_year` WHERE `nazva`='$element[$cycle]' AND DAY(`date`)=$l AND MONTH(`date`)=$month AND YEAR(`date`)=$e_year"));
for ($t=0; $t<=$max_t; $t++) {$p=$p+$prev[$t];}
if ($p>0)
{ $previous = $prev;
break;
}
}
}
if ($p==0) // попередій місяць
{ if ($month==1) {$mmm=12; $e_year=$year-1;}
else { $mmm=$month-1; $e_year=$year;}
$mega=date("t", strtotime($e_year . "-" . $mmm. "-01"));
for ($l=$mega; $l>=1; $l=$l-1)
{ $prev = mysql_fetch_row(mysql_query("SELECT $select_previous FROM `energobalans$e_year` WHERE `nazva`='$element[$cycle]' AND DAY(`date`)=$l AND MONTH(`date`)=$mmm AND YEAR(`date`)=$e_year"));
for ($t=0; $t<=$max_t; $t++) {$p=$p+$prev[$t];}
if ($p>0)
{ $previous = $prev;
break;
}
}
}
$c=0;
for ($t=0; $t<=$max_t; $t++) {$c=$c+$current[$t];}
if ($c>0)
{ for ($t=0; $t<=$max_t; $t++)
{
if (!isset($kelectro[$t]) or $kelectro[$t]==0) {$kelectro[$t]=1;}
if ($main_cycle!=1) {$kelectro[$t]=1;}
if (@$previous[$t]==0) {$previous[$t]=$current[$t];}
if ($previous[$t]>9800 AND $current[$t]<100) {$actual=$actual+(10000-$previous[$t]+$current[$t])*$kelectro[$t];}
elseif ($previous[$t]>99000 AND $current[$t]<1000) {$actual=$actual+(100000-$previous[$t]+$current[$t])*$kelectro[$t];}
else {$actual=$actual+($current[$t]-$previous[$t])*$kelectro[$t];}
}
}
if (@$actual=="" or !isset($actual) or !$actual) {$actual=0;}
if ($actual<0) {$actual=0;}
if (@$actual==9838 AND $element[$cycle]=="ДНЗ №4") {$actual=0;}
$actual=number_format($actual, 0, '.', '');
?>
Что он делает: Берет с базы даные за текущее число, и за предыдущее, если предыдущие == 0 шаг на день назад, дошел до 1 - го числа и предыдущее значение все еще == 0, ищем даные в предыдущем месяце. Потом все сумируем. Это для вычеслиния потребления енергоресурсов, даные со счетчиков.
_____________
*пускает слюну, глядя на код* :)