如何获得每个帖子的 php 总评论数?

Posted

技术标签:

【中文标题】如何获得每个帖子的 php 总评论数?【英文标题】:how to get total comment in php for each post? 【发布时间】:2019-06-26 18:22:36 【问题描述】:

我有一张名为 cmets 的表。从这里我想显示每个帖子的总评论。我试过了,但它显示了所有帖子的总 cmets。但我只想要每个帖子的总评论

function commeNT()
        global $conn;
         $sql = "SELECT COUNT(`post_id`) as `totalComment` FROM `comments` WHERE post_id = `post_id`";
            $result = $conn->query($sql);                    
            if(mysqli_num_rows($result) > 0)
            while($comm= mysqli_fetch_array($result))                  
            echo $comm['totalComment'];
           
        
    

我有一张名为 cmets 的表。从这里我想显示每个帖子的总评论。我试过了,但它显示了所有帖子的总 cmets。但我只想要每个帖子的总评论。

【问题讨论】:

那么 sql 返回什么? WHERE post_id = `post_id`"; 看起来不太对劲。你可能是说WHERE post_id = 1?或其他数字 您只是检查该行的 post_id 是否等于该行的 post_id。 every 行显然是这种情况。您应该将 $postId 传递到您的函数中,并在查询中使用绑定参数。 @Qirel 是的朋友 也许您正在寻找GROUP BY post_id?从你的问题中不清楚你想要的结果是什么。您展示了一些示例数据以及该数据的结果应该是什么。 【参考方案1】:
//This will get you a list of all posts and total comments for each.
function all_post_comments() 
    global $conn;
    $sql = "SELECT COUNT(`post_id`) as `totalComment`, `post_id` FROM `comments` GROUP BY `post_id`";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) 
        while ($comm = $result->fetch_array()) 
            echo $comm['post_id'] . ' Total Comments = ' . $comm['totalComment'];
        
    


//This will get you total comments for a specific post.  You have to pass post id when calling the function.
function comment_count($postId) 
    global $conn;
    $sql = "SELECT COUNT(`post_id`) as `totalComment` FROM `comments` WHERE `post_id` = $postId";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) 
        $comm = $result->fetch_array();
        echo $postId . ' Total Comments = ' . $comm['totalComment'];
     else 
        echo "No Post Found with that id";
    

【讨论】:

这是一个答案吗?您需要解释您发布的内容。 @Dharman 实际上我正在寻找特定帖子的 cmets 计数。但是当我使用您尝试过的这段代码时,它显示了这个结果,在我的表格中我总共有 9 个帖子,从这篇帖子中我正在寻找特定帖子的 cmets 计数。就是这样。 7 总评论 = 19 总评论 = 142 总评论 = 145 总评论 = 7 @Zobair - 我做了一些调整,这样你就可以获得单个帖子的评论数 我修复了你的 php 语法错误,但是这个答案仍然存在问题。 WHERE post_id 看起来不正确。我假设您想改用 prepare 并执行 WHERE post_id=?.

以上是关于如何获得每个帖子的 php 总评论数?的主要内容,如果未能解决你的问题,请参考以下文章

mysql/php:显示帖子和每个帖子的所有评论

为recyclerview更新帖子的评论数

每个帖子的评论数

东方财富爬虫url次数最大

MYSQL 查询 - 获取与帖子相关的最新评论

如何获取当前帖子的 ID 以添加评论