我希望以下输出数字“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;
我做错了什么?
答案 0 :(得分: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");