0

我需要从 mysql 表中计算平均值。因此,我将 col 的总和除以行数。但是没有正确分配值:-

$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 回答