выбрать все комментарии со всеми сообщениями php mysql

У меня есть форум, где пользователи могут оставлять вопросы, комментировать и твитнуть.

Я хочу получить все comments а также tweets каждого поста.

То, что я сделал ранее, было сделать это в 3 набора запросов.

$data = mysqli_query($con,"select * from posts");
while($row = mysqli_fetch_assoc($data)){
$pid  = $row['post_id'];
$dataCo = mysqli_query("SELECT comments.* FROM comments WHERE post_id = $pid");
$dataTw = mysqli_query("SELECT tweets.* FROM tweets WHERE post_id = $pid");
//2 while loop for comments and tweets

}

Может кто-нибудь показать мне, как я могу сделать эти вещи в один запрос потому что, если получить много posts в первом запросе будет много запросов.

ИЛИ ЖЕ

Может быть, есть более быстрый способ сделать?

0

Решение

Может быть, вы можете использовать Mysql IN

http://www.tutorialspoint.com/mysql/mysql-in-clause.htm

В вашем примере у вас всегда 2 * n + 1 запросов к БД. Где n в количестве возвращаемых строк в этом запросе

$data = mysqli_query($con,"select * from posts");

Если вы используете mysql IN Clause, у вас будет только 3 запроса.

Ваши запросы должны выглядеть так

$dataCo = mysqli_query("SELECT comments.* FROM comments WHERE post_id IN (1,2,3,4)");
$dataTw = mysqli_query("SELECT tweets.* FROM tweets WHERE post_id IN (1,2,3,4)");

Числа «1,2,3,4» возвращаются post_id в вашем первом вопросе.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]