Invalid IP detected!"); } // === 2. Преобразуем IP в BIGINT (беззнаковый) === $ip_long = sprintf('%u', ip2long($auth_ip)); // === 3. Находим авторизацию и пользователя за один JOIN === $sql = " SELECT ua.*, ul.* FROM user_auth ua JOIN user_list ul ON ua.user_id = ul.id WHERE ua.ip_int = ? AND ua.deleted = 0 AND ul.deleted = 0 "; $record = get_record_sql($db_link, $sql, [$ip_long]); if (!$record) { die("" . WEB_cell_ip . " " . htmlspecialchars($auth_ip, ENT_QUOTES) . "  - " . WEB_unknown . "!"); } // === 4. Подготавливаем данные === $id = $record['id']; $user_id = $record['user_id']; $KB = get_const('KB') ? 1024 : 1000; // Квоты пользователя $user_month_quota = ($record['month_quota'] ?? 0) * $KB * $KB; $user_day_quota = ($record['day_quota'] ?? 0) * $KB * $KB; // Квоты IP (auth) $auth_month_quota = ($record['auth_month_quota'] ?? $record['month_quota'] ?? 0) * $KB * $KB; $auth_day_quota = ($record['auth_day_quota'] ?? $record['day_quota'] ?? 0) * $KB * $KB; // === 5. Получаем трафик за день и месяц за 2 запроса (без циклов!) === $params_day = [$date1, $date2, $user_id]; $params_month = [$date1m, $date2m, $user_id]; // Трафик по всем auth этого пользователя $day_traffic = get_record_sql($db_link, " SELECT SUM(CASE WHEN ua.id = ? THEN us.byte_in ELSE 0 END) AS auth_in, SUM(CASE WHEN ua.id = ? THEN us.byte_out ELSE 0 END) AS auth_out, SUM(us.byte_in) AS user_in, SUM(us.byte_out) AS user_out FROM user_stats us JOIN user_auth ua ON us.auth_id = ua.id WHERE us.ts >= ? AND us.ts < ? AND ua.user_id = ? AND ua.deleted = 0 ", [$id, $id, $date1, $date2, $user_id]); $month_traffic = get_record_sql($db_link, " SELECT SUM(CASE WHEN ua.id = ? THEN us.byte_in ELSE 0 END) AS auth_in, SUM(CASE WHEN ua.id = ? THEN us.byte_out ELSE 0 END) AS auth_out, SUM(us.byte_in) AS user_in, SUM(us.byte_out) AS user_out FROM user_stats us JOIN user_auth ua ON us.auth_id = ua.id WHERE us.ts >= ? AND us.ts < ? AND ua.user_id = ? AND ua.deleted = 0 ", [$id, $id, $date1m, $date2m, $user_id]); $day_auth_sum_in = $day_traffic['auth_in'] ?? 0; $day_auth_sum_out = $day_traffic['auth_out'] ?? 0; $day_user_sum_in = $day_traffic['user_in'] ?? 0; $day_user_sum_out = $day_traffic['user_out'] ?? 0; $month_auth_sum_in = $month_traffic['auth_in'] ?? 0; $month_auth_sum_out = $month_traffic['auth_out'] ?? 0; $month_user_sum_in = $month_traffic['user_in'] ?? 0; $month_user_sum_out = $month_traffic['user_out'] ?? 0; ?>