Мне нужна помощь с правильным способом запроса для отображения информации из таблицы базы данных.
В моей таблице базы данных содержатся столбцы id | src_address | dst_address | байтов
Информация хранится с моего маршрутизатора MikroTik (IP Accounting), но мой скрипт хранит IP-адреса в виде целых чисел, поэтому я могу выбирать диапазоны.
Мне нужен правильный запрос для запуска вывода данных следующим образом:
(src_address -> dst_address = upload)
(dst_address -> src_address = скачать)
Мне нужен сценарий для вывода следующего: IP-адрес | Загрузить байты | Загрузить байты | Всего байтов
Мой текущий скрипт выводит только байты загрузки, и я не уверен, как второй раз отменить заказ, чтобы отобразить байты загрузки, а затем добавить оба для отображения общих байтов.
Вот мой код:
<?php //Include needed files require ("config.php"); include ("includes/formatbytes.php"); //Connect to database $conn = mysqli_connect($SQLserver, $SQLusername, $SQLpassword, $SQLdatabase); if (!$conn) { die("Could not connect: " . mysqli_connect_error()); } //Query database $query = "SELECT * , SUM(bytes) AS upload_bytes FROM ipaccounting WHERE src_address BETWEEN 3232235520 AND 3232301055 AND dst_address NOT BETWEEN 3232235520 AND 3232301055 GROUP BY src_address"; //Execute query $result = mysqli_query($conn,$query); //Display IP information echo "<table>"; echo "<tr><th>IP Address</th><th>Upload</th></tr>"; while($row = mysqli_fetch_array($result)) { if (isset($row['src_address'])) { $src_address = $row['src_address']; $src_address = long2ip($src_address); } /*if (isset($row['dst_address'])) { $dst_address = $row['dst_address']; } */ if (isset($row['upload_bytes'])) { $uploadbytes = $row['upload_bytes']; $uploadbytes = formatBytes($uploadbytes); } echo "<tr><td>".$src_address."</td><td>".$uploadbytes."</td></tr>"; } echo "</table>"; mysqli_close($conn); ?>
Обратите внимание, что в целых 3232235520 используется 192.168.0.1, а 3232301055 – 192.168.255.254