Php 如何从注释表中获取注释数(计数)

Php 如何从注释表中获取注释数(计数),php,mysql,pdo,Php,Mysql,Pdo,我有一个新闻和评论系统,我想在这里看到一个特定新闻项目的评论数量。我尝试了很多方法,但大多数方法都会显示表中所有评论的数量,而不是具体新闻的数量。如何做到这一点 我有id为、nid(新闻id)comment和author的表注释。我尝试了这种方法,但它显示了整个表中所有注释的数量 $query = "SELECT * FROM comments ORDER BY nid"; $stmt = $db->prepare($query); $stmt->execute(); $number

我有一个新闻和评论系统,我想在这里看到一个特定新闻项目的评论数量。我尝试了很多方法,但大多数方法都会显示表中所有评论的数量,而不是具体新闻的数量。如何做到这一点

我有id为、nid(新闻id)comment和author的表注释。我尝试了这种方法,但它显示了整个表中所有注释的数量

$query = "SELECT * FROM comments ORDER BY nid";
$stmt = $db->prepare($query);
$stmt->execute();
$numberOfComments = $stmt->rowCount();
echo "(<a href=\"comments.php?id=".$id."\">Add Comment</a>) <hr> Comments ( ".$numberOfComments." )";

在本例中,我有一个添加注释的产品。我想知道每个产品有多少评论,但我无法处理。“nid”是我的产品ID。

可以使用适当的sql函数,而不是计算返回的行数

您可以使用count(*)和group by

对于单个新闻\u id

 SELECT count(*) my_count
 FROM comments 
 WHERE nid = 1 
对于所有你可以使用的新id

 SELECT nid, count(*) my_count
 FROM comments 
 GROUP BY nid

不起作用。对于任何新闻项目,第一种方式显示有1条评论,第二种方式显示有2条评论。事实上,在第一条新闻中,我在表格中有2条评论,在第二条新闻中,如果你认为你应该更好地检查结果的话。。第一个查询仅返回一行,您必须检查my_count列别名以读取行数。。第二个查询返回两行两列,第一列是nid,第二列是此nid的注释行数。。更新了列名别名的答案目前它显示有1条评论和2条新闻。“我的计数”到底是做什么的。我不知道如何显示新闻上有多少评论,我不太明白。更新你的问题。。将有效的数据示例添加为文本。。所以我们无法解释count(*)是如何工作的,已经完成了。有人能帮忙吗?你知道如何使用WHERE子句吗?
 SELECT nid, count(*) my_count
 FROM comments 
 GROUP BY nid