PHP SUM function


PHP SUM function

我有一个如下表:

id    q_id         value  
------------------------
1     2            5 
2     2            NULL 
3     2            5 
4     2            NULL 
5     4            2 
6     4            NULL 
7     4            2 
8     4            NULL 

我想要的是得到(例如)所有值where q_id = 2 的总和

    $sq = mysql_query("SELECT SUM(value) AS sum FROM  table WHERE q_id = 2)or die(mysql_error());
   while($row = mysql_fetch_array($sq)){
    $sum = $row['sum'];
     }
  echo $sum."<br>";

但我得到

5
5

但我想要的是值和期望值的总和,而不是10。

谢谢你的帮助。

如果你无论如何都要在结果集上循环,为什么不直接使用呢

SELECT value FROM table WHERE q_id=2

然后使用while循环对这些值求和?类似于:

while($row = mysql_fetch_array($sq)) {     $sum += $row['value']; } echo $sum."<br>";

编辑:同样,正如Jason McCreary上面所说,您应该研究查询数据库的另一种方法。我建议在php.net中搜索"PDO",这很容易使用。

我们可以像一样在查询中直接求和

SELECT 5+6 AS addition

试试。。。您正在显示value,代码中缺少引号。

   $sq = mysql_query("SELECT SUM(value) AS sum FROM  `table` WHERE `q_id` = '2'")or die(mysql_error());
   while($row = mysql_fetch_assoc($sq))
   {
     $sum = $row["sum"];
   }
   echo $sum . "<br>";
 $sq="SELECT  value FROM table WHERE q_id='".$am."'"; 
 $result=mysqli_query($link,$sq); 
while($row=mysqli_fetch_assoc($result)) { 
 $sum += $row['value']; 
     } 
 echo "<p>Sum:&nbsp;".$sum."</p><br>";
 //$am ='2'; 
 //$link  -- connection to the data base

请将$am ='2';放在select语句之前,并确保您已使用$link 连接到数据库

您将根据q_id 的值获得总额

我已经测试了代码,运行良好。

您需要在查询中添加一个GROUP BY。将以下内容添加到结束

GROUP BY q_id