3

我有一个如下表:

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。

谢谢你的帮忙。

4

5 回答 5

3

如果您无论如何都要遍历结果集,为什么不直接使用

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”,它非常易于使用。

于 2012-09-04T23:21:08.863 回答
1

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

SELECT 5+6 AS addition
于 2020-12-05T15:11:44.337 回答
0

试一试...您正在显示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>";
于 2012-09-04T21:33:47.710 回答
0
 $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

我已经测试了代码并且工作正常。

于 2017-06-17T13:22:19.267 回答
-1

您需要在查询中添加 GROUP BY。将以下内容添加到末尾

GROUP BY q_id
于 2012-09-04T21:32:18.337 回答