2013-03-15 6 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

ответ

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-инъекции.

Смежные вопросы