2016-08-15 160 views
0

我有一個循環從表中提取2個數字,然後計算總數。SUM在while循環中 - php

我想找到最後的總數(所有總數的總和)。

有沒有辦法不使用數據庫來計算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

在第一次嘗試重新分配'$ total'每次迭代中,但當然要添加新的值每次迭代。在第二次嘗試中,只是添加了另一行,即將值加倍,但仍將其重新分配。還要確保在while循環之前初始化變量。 – Rizier123

回答

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

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

    $total = $total + $sum; 

} 
0

只需初始化$totalwhile循環外部爲零,然後添加到它,像這樣:

<?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變量,但它被認爲是很好的做法,因爲它提高了代碼的可讀性。

在腳本語言的層面上這樣做顯然比使用數據庫引擎本身計算總和要低效。但我認爲這不是一個真正的工作任務,但一些研討會功課或類似...

0
$total = 0; 

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