2014-03-12 38 views
1

我有一個返回行數的PDO查詢。每行都包含一個整數,接下來我要做的就是將所有整數加起來,這樣我就可以將它除以行數來得到平均值。我會使用一個foreach循環嗎?PDO - 添加來自多行的值以獲得平均值

$rates = $users->rate_count($id); 
$ratecount = count($rates); 

編輯:明白了與SQL工作 - 感謝大家:

public function rate_average($id) { 
    $query = $this->db->prepare("SELECT AVG(rate) FROM `ratefeed` WHERE post=?"); 
    $query->bindValue(1, $id); 
    try{ 
     $query->execute(); 
    }catch(PDOException $e){ 
     die($e->getMessage()); 
    } 
    return $query->fetchColumn(); 
} 


$rateaverage = $users->rate_average($id); 
+0

除了更多的細節,是的,那會做,但你有沒有嘗試過?它不起作用嗎?你使用的是哪個數據庫? – hd1

+0

這個工程,我只是不知道如何將foreach循環加入到將它們添加到一起? – user2250471

+2

爲什麼你不讓MySQL計算平均值? – Mike

回答

1

在這裏你去,在PHP中:

$count = 0; 
$sum = 0; 
foreach ($array as $element) { 
    $count = $count + 1; 
    $sum = $sum + $element; 
} 
print_r($sum/$count); 

不過,由於在評論中指出,使用SQL是您最高性能的選擇。讓我知道你是否需要更多的幫助。

+0

謝謝,你能看看我所做的編輯,看看我是否做錯了什麼? – user2250471

+0

'print_r($ query_fetch);'可以肯定,但我懷疑你想'$ query_fetch [0]' – hd1

+1

你知道你可以簡化'$ count = $ count + 1;'爲'$ count ++'。而不是有'$ count',只要'count($ array)'。如果它是一個數組的數組,就像你所擁有的那樣,你可以將整個事物簡化爲'array_sum($ array)/ count($ array)'。 – Mike