$help='Вопросы//Помощь'; $help='Вопросы//Помощь';
Всем привет. Вот ломаю голову над такой задачей:
Тут все понятно.
Тут все понятно.
<?
$q = $pdo->query("SELECT * FROM `chat`,`user` WHERE `chat`.`id_user` = `user`.`id` ORDER BY `chat`.`time` DESC LIMIT 10");
while($post = $q->fetch(PDO::FETCH_ASSOC)){
echo $post['login'].'<br> '.$post['msg'].'</br>';
}
Задача:<?
$q = $pdo->query("SELECT * FROM `chat`,`user` WHERE `chat`.`id_user` = `user`.`id` ORDER BY `chat`.`time` DESC LIMIT 10");
while($post = $q->fetch(PDO::FETCH_ASSOC)){
$chat_user = $pdo->query("SELECT * FROM `user` WHERE `id` = '".$post['to_user']."' LIMIT 1")->fetch();
echo $post['login'].'<br> '.$chat_user['login'].' '.$post['msg'].'</br>';
}
Избавится от вложенного запроса после while(). Как? Остались еще тут люди? 0 0 0
Комментарии (11)
ответил NaZyA_UA
Это понятно, что JOIN нужно использовать. Но задача стоит при выборке данных из одной таблицы по двум столбцам `id_user` кто отправил, `to_user` кому.
Кройте тему, вопрос решен.
<?
$q = $pdo->query("SELECT u.login, u2.login AS to_user, c.msg FROM chat c LEFT JOIN user u ON c.id_user = u.id LEFT JOIN user u2 ON u2.id = c.to_user ORDER BY `time` DESC LIMIT 10");
while($post = $q->fetch(PDO::FETCH_ASSOC)){
echo $post['login'].'<br> '.$postq['to_user'].' '.$post['msg'].'</br>';
}
Для добавления комментариев необходимо авторизоваться
Танки. Стальной легион
Десятки видов техники, тяжелые бои и секретные...