我正在为我的大学创建一个非常基本的报价网站,学生可以在那里提交报价,然后对它们进行投票。投票存储在votes
表格中,其中包含id
,quoteid
,value
和IP
(以防止垃圾邮件投票)。当有人投票时,会插入一个新行,其中包含quoteid
和value
。此value
可以是1或-1。我编写了一个函数,它返回一个具有特定报价编号的所有投票数组。
现在,我要做的就是编写一个函数,以便将所有value
字段加在一起,得出总分。我该怎么做?
答案 0 :(得分:2)
我不会像你说的那样做。将查询更改为使用SUM()并按quoteid分组。示例如下:
SELECT quoteid, SUM(value) total from votes GROUP BY quoteid
答案 1 :(得分:0)
如果你全部查询,那就更好了。
<?php
function getVotes($quoteId) {
$sql = "Select count(id) as voteup from votes where `value` = 1 and quote_id = {$quoteId}
union
Select count(id) as votedown from votes where `value` = -1 and quote_id = {$quoteId}";
$result = mysql_query($sql);
$data = mysql_fetch_assoc($result); // haven't read while loop because we know the result is only one row
return $data ;//data is array with voteup and votedown keys
}
注意:不推荐使用mysql_函数,如果您使用PDO或mysqli,我会写得更好。