2010-09-17 2 views
0

Когда я устанавливаю свою разбивку на страницы, чтобы отображать 10 комментариев за раз, мой запрос комментариев не будет считать ответы комментариев как часть количества показаний, как я могу исправить это, чтобы мои комментарии отвечали? Мои комментарии отвечают на запросы, вложенные в мой основной запрос, чтобы отображать комментарии.Проблема отображения pagination PHP и MySQL

Запрос для пагинацией

SELECT COUNT(comment_id) FROM comments WHERE id = $id 

Основной запрос для отображения комментариев.

$dbc = mysqli_query($mysqli,"SELECT comments.*, users.* 
          FROM comments 
          LEFT JOIN users 
          ON comments.user_id = users.user_id 
          WHERE id = '" . $id . "' 
          AND parent_comment_id = 0 
          LIMIT $start, $display"); 

Основные запросы ответные комментарии.

//display comments replies 
$dbc2 = mysqli_query($mysqli, "SELECT comments.*, users.* 
           FROM comments 
           LEFT JOIN users 
           ON comments.user_id = users.user_id 
           WHERE id = '" . $id . "' 
           AND parent_comment_id >= 1"); 


//display comments replies 
$dbc3 = mysqli_query($mysqli, "SELECT comments.*, users.* 
           FROM comments 
           LEFT JOIN users 
           ON comments.user_id = users.user_id 
           WHERE id = '" . $id . "' 
           AND parent_comment_id >= 1"); 
+0

Я не вижу разницы между $ dbc2 и $ dbc3 – MattSmith

ответ

0

Возможно, этот запрос, не могли бы вы дать точную структуру БД для работы.

SELECT 
    com1.*, 
    users.*, 
    (
     SELECT COUNT(*) 
     FROM comments AS com2 
     WHERE com2.parent_comment_id = com1.id 
    ) AS num_replies 
FROM comments AS com1 
LEFT JOIN users ON com1.user_id = users.user_id 
WHERE 
     com1.id = '" . $id . "' 
    AND com1.parent_comment_id = 0 
LIMIT $start, $display