2011-07-12 24 views
1

私は製品の行のあるDBテーブルを持っています。私はすべての金額の合計を計算するループを作成したいと思います。PHPの数学の質問

$results = mysql_query("SELECT * 
         FROM prod"); 

while($info = mysql_fetch_array($results)) {  
    $amount = $info['amount']; 
} 

amountは、製品コストごとにvarです。私は一緒にすべてのヴァールの合計を取得したい - どのように私はそれを行うことができますか?

答えて

9

SQLクエリでSUM()関数を使用します。

$result = mysql_query("SELECT SUM(amount) AS sum_amount FROM prod"); 

if ($result) 
    $sum = mysql_result($result, 0, 0); 
+2

アレイアクセスの選択に 'as SUM'定義を追加する必要があります。 – Swift

+0

この小さなケースでは、配列へのアクセスは必要ありませんが、あなたが正しいです - 後で拡張性のためにはおそらく最適でしょう。追加されました。 –

0

のMySQLで行うことが容易:

SELECT SUM(amount) FROM prod 

その後、結果を取得します。

+0

$ resultssum = mysql_query(「slikaTransactionsからのSUM(量)の選択」、「userid = '$ useridget'」); \t \t \tながら($情報=は、mysql_fetch_array($ resultssum)){\t \t \t \t \t \t $量= $情報[ '量']。 \t \t \t \t \t \t // $のSUM = array_sum($量); \t \t \t echo $ SUM; \t \t} –

+0

@idan bachar:mysql_fetch_assoc()を使用する場合は、エイリアスを使用して信頼性の高い列名を使用することをお勧めします。 'SUM(amount)AS Total'またはそれ以下です。 – Orbling

0

まず:

while ($info = mysql_fetch_array($results)) { 
    $amount[] = $info['amount']; 
} 

$sum = array_sum($amount); 
+0

$ resultssum = mysql_query( "ユーザーID = '$ useridget'"というSlikaTransactionsからSUM(量)を選択します); \t \t \tながら($情報=は、mysql_fetch_array($ resultssum)){\t \t \t \t \t \t $量= $情報[ '量']。 \t \t \t \t \t \t // $のSUM = array_sum($量); \t \t \t echo $ SUM; \t \t}なぜ私にとってはうまくいかないのですか? –

+0

多くの投票で答えをチェックしてください...これはあなたを正しい軌道に乗せるはずです。 $ amount = $ info ['amount']; array_sumは配列を期待しているので動作しません;) – madflow

0

あなたは変数に金額を追加することができます:

$results = mysql_query("select * from prod"); 

$sum = 0 
while($info = mysql_fetch_array($results)) { 
    $amount = $info['amount']; 
    $sum += $amount 
} 

それともを

あなたは

SELECT SUM(amount) FROM .... 

第二のmysqlでこれを行うことができますSQLでそれを行うことができます:

SELECT SUM(column) FROM table