$countPage) { $page = 1; } $strPage = 'Страниц:'; for ($i = 0; $i < $countPage; $i++) { $temp = $i + 1; if ($page != $temp) { $strPage .= ' ' . $temp . ''; } else { $strPage .= ' [' . $page . ']'; } } /* определим отображаемый период */ $dateArray = array_slice($dateArray, ($page - 1) * 12, 12); /* Запрос возвращает количество прошедшего трафика за заданный период. */ $patterns = array("/%BEGIN_DATE%/", "/%END_DATE%/"); $query = ' select ifnull(out.psizeSum,0) as outTraf, ifnull(in.psizeSum,0) as inTraf from ( select sum(psize) as psizeSum from traffic where (srcPort = 0) && (date >= "%BEGIN_DATE%" and date < "%END_DATE%") ) as `out` join ( select sum(psize) as psizeSum from traffic where (dstPort = 0) && (date >= "%BEGIN_DATE%" and date < "%END_DATE%") ) as `in`'; $dataSumArray = array(); $imgDataOut = array(); $imgDataIn = array(); foreach ($dateArray as $beginDate) { list($year, $month, $day) = split('-',$beginDate); $endDate = date("Y-m-d", mktime(0, 0, 0, $month + 1, $day, $year)); $replacements = array($beginDate, $endDate); $queryTemp = preg_replace($patterns, $replacements, $query); $result = my_mysql_query($queryTemp); $line = mysql_fetch_assoc($result); $dataSumArray[$beginDate] = $line; $imgDataOut[] = $line['outTraf']; $imgDataIn[] = $line['inTraf']; mysql_free_result($result); } /* сформируем запрос графика содержащий статистику */ function get_short_month($month) { global $MONTH_NAMES_IMG; list($y, $m) = explode('-', $month); return urlencode(sprintf("%s %02d", $MONTH_NAMES_IMG[(int)$m], $y - 2000)); } $imgDataOut = array_reverse($imgDataOut); $imgDataIn = array_reverse($imgDataIn); $x_label = array_map('get_short_month', array_reverse($dateArray)); $jpImg = './graph.php?graph=pergraph&leg=' . urlencode('Sent') . '|' . urlencode('Received') . '&xl=' . implode('|', $x_label) . '&data=' . implode(',', $imgDataOut) . '|' . implode(',', $imgDataIn); /** * Отобразим страницу. */ list($year, $month, $day) = split('-', $dateArray[count($dateArray) - 1]); $arrBeginDate = array($year, $month, $day); list($year, $month, $day) = split('-', $dateArray[0]); $arrEndDate = array($year, $month, $day); $title = 'Статистика за '; if (count($dateArray) > 1) { $title .= make_month($arrBeginDate[0], $arrBeginDate[1]) . ' - ' . make_month($arrEndDate[0], $arrEndDate[1]); } else { $title .= make_month($arrEndDate[0], $arrEndDate[1]); } print_html_head($title); /* отобразим название продукта */ print_head(); /* отобразим график содержащий статистику */ echo '
' . "\n"; echo '\n"; echo '\n"; echo "\n"; echo '' . "\n"; echo '
'; print_login(); echo "

Статистика за '; if (count($dateArray) > 1) { echo make_month($arrBeginDate[0], $arrBeginDate[1]) . ' - ' . make_month($arrEndDate[0], $arrEndDate[1]); } else { echo make_month($arrEndDate[0], $arrEndDate[1]); } echo "

'; echo ''; echo '
' . "\n"; print_full_line(); /* отобразим таблицу содержащую статистику */ echo '
' . "\n"; if (SESS_TYPE === 'admin') { echo '\n"; } echo '' . "\n"; echo ''; print_data("Период", "head0", "th"); print_data("Исходящий трафик", "head0", "th"); print_data("Входящий трафик", "head0", "th"); echo '' . "\n"; foreach ($dateArray as $dateTemp) { list($year, $month) = split('-',$dateTemp); $period = mktime(0, 0, 0, $month, 1, $year); $link = "" . make_month($year, $month) . ''; echo ''; print_data($link, "data1"); print_data(val_trun($dataSumArray[$dateTemp]['outTraf']), "data2"); print_data(val_trun($dataSumArray[$dateTemp]['inTraf']), "data2"); echo '' . "\n"; } echo '
' . $strPage . '
' . "\n"; print_full_line(); /* отобразим информацию о программе */ print_info($queryCount); print_html_tail(); ?>