" . $user['login'] . ""; ?>
>

getAttribute(PDO::ATTR_DRIVER_NAME); foreach ($usersip as $row) { $fid = (int)$row["id"]; $fip = $row["ip"]; $fcomm = $row["description"]; $params = [$date1, $date2]; $conditions = ["user_stats.ts >= ?", "user_stats.ts < ?"]; if (!empty($rgateway) && $rgateway > 0) { $conditions[] = "user_stats.router_id = ?"; $params[] = (int)$rgateway; } $conditions[] = "auth_id = ?"; $params[] = $fid; $whereClause = implode(' AND ', $conditions); $sSQL = "SELECT SUM(byte_in) + SUM(byte_out) AS t_sum FROM user_stats WHERE $whereClause"; $day_summary = get_record_sql($db_link, $sSQL, $params); $summ = !empty($day_summary) ? (float)($day_summary['t_sum'] ?? 0) : 0; if ($summ > 0) { $ipcount++; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; // === 2. Формат даты в зависимости от СУБД === if ($days_shift <= 1) { $mysql_format = '%Y-%m-%d %H'; $pg_format = 'YYYY-MM-DD HH24'; } elseif ($days_shift <= 30) { $mysql_format = '%Y-%m-%d'; $pg_format = 'YYYY-MM-DD'; } elseif ($days_shift <= 730) { $mysql_format = '%Y-%m'; $pg_format = 'YYYY-MM'; } else { $mysql_format = '%Y'; $pg_format = 'YYYY'; } // === 3. Параметры для детального запроса === $detail_params = [$date1, $date2, $fid]; $detail_conditions = "user_stats.ts >= ? AND user_stats.ts < ? AND auth_id = ?"; if ($rgateway > 0) { $detail_conditions .= " AND user_stats.router_id = ?"; $detail_params[] = (int)$rgateway; } // === 4. Запрос в зависимости от СУБД === if ($db_type === 'mysql') { $date_expr = "DATE_FORMAT(user_stats.ts, '$mysql_format')"; $sSQL = " SELECT user_stats.router_id, $date_expr AS thour, SUM(byte_in) AS byte_in_sum, SUM(byte_out) AS byte_out_sum FROM user_stats WHERE $detail_conditions GROUP BY $date_expr, user_stats.router_id ORDER BY thour" . ($rgateway > 0 ? '' : ', user_stats.router_id'); } elseif ($db_type === 'pgsql') { $date_expr = "TO_CHAR(user_stats.ts, '$pg_format')"; $sSQL = " SELECT user_stats.router_id, $date_expr AS thour, SUM(byte_in) AS byte_in_sum, SUM(byte_out) AS byte_out_sum FROM user_stats WHERE $detail_conditions GROUP BY $date_expr, user_stats.router_id ORDER BY thour" . ($rgateway > 0 ? '' : ', user_stats.router_id'); } else { throw new Exception("Unsupported DB: $db_type"); } $userdata = get_records_sql($db_link, $sSQL, $detail_params); $sum_in = 0; $sum_out = 0; foreach ($userdata as $userrow) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $sum_in += $userrow['byte_in_sum']; $sum_out += $userrow['byte_out_sum']; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $itog_in += $sum_in; $itog_out += $sum_out; } } if ($ipcount > 1) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } ?>
$fip$fcommTOP 10".WEB_report_detail."
" . $gateway_list[$userrow['router_id']] . "" . $userrow['thour'] . "" . fbytes($userrow['byte_in_sum']) . "" . fbytes($userrow['byte_out_sum']) . "
" . WEB_title_sum . " " . fbytes($sum_in) . "" . fbytes($sum_out) . "
".WEB_title_itog." " . fbytes($itog_in) . "" . fbytes($itog_out) . "