0

mysql テーブルから平均を計算する必要があります。だから私は列の合計を取り、それを行数で割っています。しかし、値が適切に割り当てられていません:-

$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で平均を導き出す方法はありますか?

4

3 に答える 3

1

あなたが実際に欲しいのは:

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

fetchOne は、結果セットや配列の代わりに単一の値を提供し、パラメーター化されたクエリを使用して SQL インジェクションから保護します。

于 2013-03-15T09:26:18.473 に答える
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'");
于 2013-03-15T07:27:10.633 に答える
0

MYSL で AVGを使用してみる

$average_query =  $db->query("SELECT AVG(marks) FROM markstable WHERE sid = '$sid'");
于 2013-03-15T07:28:50.910 に答える