将所有返回的行z中的值相加

时间:2013-12-10 08:25:41

标签: php mysql

我正在为我的大学创建一个非常基本的报价网站,学生可以在那里提交报价,然后对它们进行投票。投票存储在votes表格中,其中包含idquoteidvalueIP(以防止垃圾邮件投票)。当有人投票时,会插入一个新行,其中包含quoteidvalue。此value可以是1或-1。我编写了一个函数,它返回一个具有特定报价编号的所有投票数组。

现在,我要做的就是编写一个函数,以便将所有value字段加在一起,得出总分。我该怎么做?

2 个答案:

答案 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,我会写得更好。