PHP 与MySQL分页显示问题

发布于 2024-09-19 07:19:31 字数 1370 浏览 3 评论 0原文

当我将分页设置为一次显示 10 条评论时,我的评论查询不会将评论回复计入显示计数的一部分,如何修复此问题以便计算我的评论回复?我的评论回复查询嵌套在我的主查询中以显示评论。

分页查询

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");

When I set my pagination to display 10 comments at a time my comments query wont count the comments replies as part of the display count how can I fix this so that my comments replies are counted? My comments replies queries are nested in my main query to display comments.

Query for pagination

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

The main query to display comments.

$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");

The main querys reply comments.

//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");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半暖夏伤 2024-09-26 07:19:31

也许这个查询,您能否给出要使用的精确数据库结构。

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

Maybe this query, could you give the precise DB structure to work with.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文