我正在尝试计算是和否投票,以便我可以为我的网站发布总数是/否。这应该很容易,但我必须在某处丢失某些东西,因为我没有得到返回结果。至少没有php错误。我的总库
$result = mysql_query("SELECT * FROM Poll");
$votes_Poll = mysql_num_rows($result);
$vote_yes = mysql_query("SELECT vote, COUNT(*) FROM Poll GROUP BY yes");
$vote_no = mysql_query("SELECT vote, COUNT(*) FROM Poll GROUP BY no");
// Display the results
echo $votes_Poll;
echo "<br>";
echo $vote_yes;
echo "<br>";
echo $vote_no;
提前致谢
答案 0 :(得分:1)
那是因为你正在回显一个查询对象。您的每个查询都应该是......
$vote_yes = mysql_query("SELECT COUNT(*) AS total FROM Poll WHERE vote = 'yes' ");
$row = mysql_fetch_object($vote_yes);
echo $row->total; //echoes out the number of yes votes
答案 1 :(得分:0)
您误解了GROUP BY
的工作原理。您不用它来选择答案,它用于选择一个字段,聚合函数被分组。
如果您使用:
SELECT `vote`, COUNT(*) FROM Poll GROUP BY `vote`
然后这将返回两个结果,每个结果有两个值,投票(是或否)和该投票的计数。
$handle = mysql_query("SELECT `vote`, COUNT(*) AS `count` FROM Poll GROUP BY `vote` ORDER BY `vote` DESC");
if ($handle) {
$results = mysql_fetch_assoc($handle);
echo ($results[0]['count'] + $results[1]['count']) . "<br>" . $results[0]['count'] . "<br>" . $results[1]['count'];
}
NB。使用ORDER BY vote DESC
部分,强制顺序为yes然后no(反向字母顺序),然后你不必检查哪一行是哪个。