2011-06-30 40 views
-1

我有一個包含數字的變量的mysql數據庫。我想在每一行上得到這些數字並將它們放入一個數組中。然後我想總結這些數字。到目前爲止,我可以從數組中獲得數字,但我不能添加它們。來自數組的總數

CODE:

$result=mysql_query("SELECT * FROM table WHERE book='$id'"); 
$max = array(); 

while($row = mysql_fetch_assoc($result)) { 
    $max[] = $row['max']; 
} 

我現在有陣列,例如數字。 $max[8]=45,但我怎樣才能添加所有的數組數?謝謝。

+3

[在數組中添加值]的可能的重複。(http://stackoverflow.com/questions/5330823/adding-values-in-an-array)和[我如何將所有的數組值添加在一起PHP的](http://stackoverflow.com/questions/2439129/how-can-i-add-all-of-my-array-values-together-in-php)和[可能其他](http:// stackoverflow.com/search?q=php+array+sum+values)。 –

+0

清理SQL ...記住bobby表... –

回答

3

如果您只需要數據庫中的總和,那麼在SQL中使用是明智的,而不是在PHP代碼中再次操作。 您可以使用 從表名中選擇總和(colname)

(可選)您可以對選擇進行分組或指定條件。除非我們明確需要一些無法通過SQL完成的操作,否則它會更快更好。

+0

+1指出在數據庫中求和可能會更快 - 如果你這樣做的話,你將節省將所有值從DB傳遞到PHP所需的時間,因爲你只會傳遞一行。 – Tadeck

+0

是的,但是「如果您只需要數據庫中的總和」很重要。實際上我剛纔問了一個關於這個問題:http://stackoverflow.com/questions/6351478/getting-all-data-in-one-query-and-processing-in-php-vs-querying-repetitively-用於/ 6351509#6351509 –

1

假設你的表中max是field。你可以這樣做:

SELECT sum(max) from table where book id = $id 

這樣你就不需要額外的步驟來計算它。