2013-03-15 46 views
0

我需要從一個mysql表中計算出平均值。所以我正在把col的總和除以行數。但價值沒有被正確分配: -如何將查詢值賦給zend中的變量

$total_sum_query = $db->query("SELECT SUM(marks) FROM markstable WHERE sid = '$sid'"); 
$num_rows_query = $db->query("SELECT * FROM markstable WHERE sid = '$sid'"); 

$avg_marks = $total_sum_query/$num_rows_query; 

我知道我做錯了什麼,但無法弄清楚。有沒有辦法在mysql中得出平均值?

+0

試試[MySQL'AVG()'命令](http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_avg) – Jon 2013-03-15 07:26:33

回答

0

嘗試像

$num_rows_query = $db->query("SELECT count(*) as cnt FROM markstable WHERE sid = '$sid'"); 

,並以此爲$ num_rows_query [ 'CNT'];

,或者你可以直接嘗試像

$avg_query = $db->query("SELECT AVG(marks) FROM markstable WHERE sid = '$sid'"); 
0

嘗試使用AVG in MYSL

$average_query = $db->query("SELECT AVG(marks) FROM markstable WHERE sid = '$sid'"); 
1

你真正想要的是:

$avg_marks = $db->fetchOne("SELECT AVG(marks) FROM markstable WHERE sid = ?", $sid); 

fetchOne爲您提供了一個單一的價值,而不是結果集或數組,並使用參數化查詢來防止SQL注入。