0

我希望以下输出数字“5”,因为数据库中有 5 行,项目 68 和用户 1。但我得到的是这个输出“12345”。

$resultb4 = mysql_query("SELECT COUNT(comparedRating) FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1");
while($rowb4 = mysql_fetch_array($resultb4)){
    $countcomparedratings=$rowb4['COUNT(comparedRating)'];
}
echo $countcomparedratings;

我究竟做错了什么?

4

1 回答 1

1

您得到 12345 的原因是因为您的查询返回 5 个结果,而您输出计数的代码只是从查询中输出返回数组的串联。

在不了解您的数据库结构的情况下,我猜您获得“12345”的原因与您的 GROUP BY 子句有关。使用 MySQLWOrkbench 之类的程序连接到数据库并在将查询包含到代码中之前对其进行测试。调试查询是一种节省时间的技术。

另外,我会为 COUNT 值设置别名,以便您在引用列名时只需引用别名。

SELECT COUNT(comparedRating) as ratingCount FROM recComparedRating WHERE user1='1' AND itemID='68' GROUP BY itemID AND user1");
于 2012-09-08T00:12:39.187 回答