PHP求和函数

PHP求和函数,php,mysql,Php,Mysql,我有一张如下的桌子: 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

我有一张如下的桌子:

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 
我想要的是得到所有值的和,例如q_id=2

但是我想要的是这个值的和,期望值为10


谢谢您的帮助。

您需要在查询中添加分组依据。在末尾添加以下内容

GROUP BY q_id

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

   $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>";

如果要循环结果集,为什么不使用

从q_id=2的表格中选择值

然后使用while循环将这些值相加?比如:

而$row=mysql\u fetch\u array$sq{ $sum+=$row['value']; } 回音$sum

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

 $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的值获得总和


我已经测试了代码,效果很好。

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

SELECT 5+6 AS addition

请停止使用mysql_*函数。GROUP BY在哪里?您发布的代码包含语法错误,您显示的查询将不会产生您指定的结果。我不认为你在做你展示给我们的事情。@Dagon:这里不是必需的,因为在WHERE子句中是通过q_id过滤的,如果使用聚合函数而不使用group by,MySQL会将所有记录分组在一起。@eggyal golly,我认为所有聚合函数都必须这样做,谢谢infoMaybe-remove group by?他已经得到了一个结果,就像它有一个groupby,并且想要一个相反的结果。在MySQL上,当q_id=2时,这是不需要的。有人在发布答案之前阅读了评论吗-@达贡:平心而论,这篇文章和你最初的评论差不多是在同一时间发布的。谢谢你们所有的人,但即使是QUID的群组,问题仍然是一样的。
 $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
SELECT 5+6 AS addition