Вывести запросы для каждого юзера
Есть список пользователей и для каждого пользователя нужно вывести соответствующие ему запросы. Проблема в том, что получается только вывести по одному запросу на юзера, т.е. надо сделать while-цикл, только я не понимаю как.
SQL
//Таблица пользователей
1 id int(11)
2 user tinytext
3 ip text
4 user_agent varchar(255)
5 request int(11)
6 cnt int(11)
7 date timestamp
//Таблица запросов
1 id int(11)
2 ip text
3 request_url text
4 user_id int(11)
5 date timestamp
PHP код
$sql = "SELECT * FROM `online_adm` WHERE $where ORDER BY `date` DESC";
$Result = mysqli_query($CONNECT, $sql);
while ($row = mysqli_fetch_assoc($Result)) {
$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT * FROM `online_ddos` WHERE `ip` = '$row[ip]' ORDER BY `date` DESC"));
$USERS.='
<div class="table_block">
<div class="inner_block">
<p>'.$row['user'].'</p>
</div>
<div class="inner_block">
<ul class="droplist_menu">
<li>
<a href="#">Запросы</a>
<ul>
<li>'.$Row['request_url'].'</li>
</ul>
</li>
</ul>
<div class="inner_block">
<p class="ip-hidden">'.$row['ip'].'</p>
</div>
<div class="inner_block" id="cnt_vw">
'.$cnt.'
</div>
<div class="inner_block">
<p>'.$row['data'].'</p>
</div>
</div>
';}
echo'
<h5>Пользователи</h5>
<div class="table inline">
<div class="table_block">
<div>Пользователь</div>
<div>Список запросов</div>
<div>IP</div>
<div id="cnt_vw"><i>(CNT)</i></div>
<div>Время</div>
</div>
'.$USERS.'
</div>';
Ответы (1 шт):
Автор решения: Condor
→ Ссылка
Совсем не обязательно производить запросы в цикле на каждую запись. Для этого можно использовать JOIN оператор. Например:
SELECT oa.*, od.request_url
FROM online_adm oa
LEFT JOIN online_ddos od ON oa.ip = od.ip
WHERE $where
ORDER BY oa.date DESC
Затем уже использовать полученные данные для формирования данных в таблице.