2016-08-15 9 views
0

テーブルから2つの数値を抽出して合計を計算するループがあります。whileループ中のSUM - PHP

私は最終的な合計(合計合計)を求めます。

DBを使用してSUMを計算するのではなく、ループ内で行う方法はありますか。

while($row = $result->fetch_assoc()) { 

    $total= $row["num1"] + $row["num2"]; 

} 

どうすればよいですか?

これは間違っている:

while($row = $result->fetch_assoc()) { 

    $total= $row["num1"] + $row["num2"]; 

    $total = $total + $total; 

} 
+0

と仮定します各反復。 2回目の試みでは、値を2倍にしてもまだ別の行を追加したにもかかわらず、それを再割り当てします。また、whileループの前に変数を初期化するようにしてください。 – Rizier123

答えて

1
$total=0; 
while($row = $result->fetch_assoc()) { 

    $sum= $row["num1"] + $row["num2"]; 

    $total = $total + $sum; 

} 
0

単にゼロにwhileループの外で、あなたの$totalを初期化して、そのようにそれに追加します。

<?php 

    $total  = 0; 

    while($row = $result->fetch_assoc()) { 
     $total += ($row["num1"] + $row["num2"]); 

    } 
0

あなたは、単に全体的に追加することができますループの各反復で合計:

<?php 
$total = 0; 
while($row = $result->fetch_assoc()) { 
    $total += $row['num1'] + $row['num2']; 
} 

実際にはPHPの場合は、図のように変数$totalを初期化する必要はありませんが、コードの読みやすさが向上するため、これは良い方法です。

スクリプト言語のレベルでこれを行うと、dbエンジン自体を使って合計を計算するよりも、はるかに効率が悪くなります。しかし、私は、これは本物の作品の仕事ではありませんが、いくつかのセミナーの宿題または同様の...あなたは$ `total`各反復を再割り当てし、もちろんあなたが新しい値を追加する最初の試みで、

0
$total = 0; 

while($row = $result->fetch_assoc()) { 
    $total += $row["num1"] + $row["num2"]; 
}