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 が上で述べたように、データベースを照会する別の方法を検討する必要があります。非常に使いやすい「PDO」で php.net を検索することをお勧めします。

于 2012-09-04T23:21:08.863 に答える
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 に答える
-1

クエリに GROUP BY を追加する必要があります。末尾に以下を追加

GROUP BY q_id
于 2012-09-04T21:32:18.337 に答える