==== XML ==== Отчет по траффику Integral es@konstanta.ru authorUrl 2009 c license 1.0 Отчет по траффику report_traffic.php ==== PHP ==== registerEvent( 'onPrepareContent', 'plgReport_TR_Modify' ); function plgReport_TR_Modify(&$row, &$params, $page=0){ $pos_report = strpos($row->text, '{traffic_period_report}'); if ($pos_report!==false) { $row->text = preg_replace('/{traffic_period_report}/', '', $row->text); include ("./urfa/URFAConfig.php"); $db_connect=mysql_connect($db_urfa_host,$db_urfa_user,$db_urfa_password) or die ("Connect failed"); mysql_select_db($db_urfa_base,$db_connect); //************************************************************************************************************************ // Функция выбора даты @$btn=$_POST['btn']; //echo $btn; function addopt ($str, $val, $select) { if ($select) { $ret=''; } else { $ret=''; } return $ret; } //$btn=$_POST['btn']; if (isset($btn)) { $d1=$_POST['daystart']; $d2=$_POST['dayend']; $m1=$_POST['monthstart']; $m2=$_POST['monthend']; $y1=$_POST['yearstart']; $y2=$_POST['yearend']; $torder=$_POST['torder']; // $sorttype=$_POST['sorttype']; } else { $y1=$y2=date("Y"); $m1=date("m"); $d1=mktime(0, 0, 0, $m1, 1, $y1); $d1=date("d",$d1); $m2=$m1; $d2=date("d"); $torder="1"; $sorttype="asc"; } // Выбор даты начала $form_select_sdate = ""; $form_select_sdate = "
- дата начала
'; /// Конец выбора даты начала // Выбор даты окончания $form_select_edate = ""; //выбор дня недели $form_select_edate .= ' - дата окончания

'; $form_select_edate .= 'Группировка '; $form_select_edate .= ''; $form_select_edate .= '
'; // Конец выбора даты окончания $data_1=mktime(0, 0, 0, $m1, $d1, $y1); $data_2=mktime(23, 59, 59, $m2, $d2, $y2); $raznica=$data_2-$data_1; // Конец - Функция выбора даты //************************************************************************************************************************ // Запросы к базе на выбор траффика $result_sql = ""; if ($btn == "1") { if ($torder == "1") { $q = ' SELECT discount_transactions_iptraffic_all.account_id, Sum(discount_transactions_iptraffic_all.bytes) AS bytes, Sum(discount_transactions_iptraffic_all.discount) AS discount, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost FROM discount_transactions_iptraffic_all LEFT OUTER JOIN t_class ON (t_class.id = discount_transactions_iptraffic_all.t_class) WHERE discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND discount_transactions_iptraffic_all.discount_date <= '.$data_2.' GROUP BY discount_transactions_iptraffic_all.account_id, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost '; //echo $q1; $result=mysql_query ($q); $result_sql .= ""; while ($row1 = mysql_fetch_assoc($result)) { if (isset($row1['bytes'])) { $traff = round($row1['bytes']/1024/1024, 3); $traff = str_replace("." , "," , $traff); }else { $traff = " "; } $summa = round($row1['discount'], 2); $startdate = $d1."/".$m1."/".$y1; $enddate = $d2."/".$m2."/".$y2; if (!isset($traff)) { $traff = 0; } $result_sql .= " "; } $result_sql .= "
Дата начала Дата окончания Тип траффика Цена за 1Мб Траффик(Мб) Сумма
".$startdate." ".$enddate." ".$row1['t_class_name']." ".$row1['base_cost']." ".$traff." ".$summa."
"; }elseif ($torder == "2") //******************************************************** { if ($raznica <= "2678400" ) { $all_summa=0; $q = ' SELECT discount_transactions_iptraffic_all.account_id AS aid, Sum(discount_transactions_iptraffic_all.bytes) AS bytes, discount_transactions_iptraffic_all.discount_date_day AS day, discount_transactions_iptraffic_all.base_cost, SUM(discount_transactions_iptraffic_all.discount) AS discount, t_class.t_class_name FROM discount_transactions_iptraffic_all LEFT OUTER JOIN t_class ON (t_class.id = discount_transactions_iptraffic_all.t_class) WHERE discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND discount_transactions_iptraffic_all.discount_date <= '.$data_2.' GROUP BY discount_transactions_iptraffic_all.account_id, discount_transactions_iptraffic_all.discount_date_day, discount_transactions_iptraffic_all.base_cost, t_class.t_class_name ORDER BY day ASC'; $result=mysql_query ($q); $result_sql .= ""; while ($row1 = mysql_fetch_assoc($result)) { if (isset($row1['bytes'])) { $traff = round($row1['bytes']/1024/1024, 4); $traff = str_replace("." , "," , $traff); $all_summa = $all_summa + $row1['discount']; }else { $traff = " "; } $data=date ("d/m/Y", $row1['day']); $summa = round($row1['discount'], 2); $result_sql .= ""; } $all_summa = round($all_summa, 2); $result_sql .= ""; $result_sql .= "
Дата Тип траффика Цена за 1Мб Траффик(Мб) Сумма
".$data." ".$row1['t_class_name']." ".$row1['base_cost']." ".$traff." ".$summa."
Итого   ".$all_summa."
"; }else{ $result_sql = "Выберите период с разницой не более 1 месяца."; } //******************************************************** }elseif ($torder == "3") { // Сортировка по часам *********************************** if ($raznica <= "86400" ) { $all_summa=0; $q = 'SELECT discount_transactions_iptraffic_all.account_id AS aid, Sum(discount_transactions_iptraffic_all.bytes) AS bytes, discount_transactions_iptraffic_all.discount_date_hour AS hours, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost, Sum(discount_transactions_iptraffic_all.discount) AS discount FROM discount_transactions_iptraffic_all LEFT OUTER JOIN t_class on t_class.id=discount_transactions_iptraffic_all.t_class WHERE discount_transactions_iptraffic_all.account_id = '.$_SESSION['URFA']['basic_account'].' AND t_class.is_deleted = 0 AND discount_transactions_iptraffic_all.discount_date >= '.$data_1.' AND discount_transactions_iptraffic_all.discount_date <= '.$data_2.' GROUP BY discount_transactions_iptraffic_all.discount_date_hour, discount_transactions_iptraffic_all.account_id, t_class.t_class_name, discount_transactions_iptraffic_all.base_cost ORDER BY hours ASC'; $result=mysql_query ($q); $result_sql .=""; while ($row1 = mysql_fetch_assoc($result)) { if (isset($row1['bytes'])) { $traff = round($row1['bytes']/1024/1024, 4); $traff = str_replace("." , "," , $traff); $all_summa = $all_summa + $row1['discount']; }else { $traff = " "; } $summa = round($row1['discount'], 2); $data=date("d/m/Y - H:i:s", $row1['hours']); $result_sql .= ""; } $all_summa = round($all_summa, 2); $result_sql .= ""; $result_sql .= "
Дата Тип трафика Цена за 1Мб Трафик(Мб) Сумма
".$data." ".$row1['t_class_name']." ".$row1['base_cost']." ".$traff." ".$summa."
Итого   ".$all_summa."
"; }else{ $result_sql = "Выберите период с разницой не более одних суток "; } //******************************************************** }elseif ($torder == "4") { // Сортировка по месяцам echo "По месяцам"; } } //*********************************************************************************************************************** $row->text = preg_replace('/{traffic_period_form}/', $form_select_sdate.$form_select_edate, $row->text); $row->text = preg_replace('/{traffic_period_report_table}/', $result_sql, $row->text); } } ?>
==== SQL ==== ==== HTML ==== {traffic_period_report} {traffic_period_form} {traffic_period_report_table} ==== Пример ====