如何在数据库的列中添加所有值并获取其平均值,然后计算其行数

时间:2019-03-10 06:26:02

标签: php mysqli

我得到了一个查询代码,该查询代码从db评级中选择评级,然后使用total变量将其全部相加,然后我想做的是我想获取db中的行数,以便将行数除以总价值以求平均值

$total=0;
    <?php
$st='SELECT rated FROM rating;';
$t=mysqli_stmt_init($conn);
mysqli_stmt_prepare($t,$st);
mysqli_stmt_execute($t);
$res=mysqli_stmt_get_result($t);
while($rop=mysqli_fetch_assoc($res)){

$total+=$rop['rated'];
echo $total;
$count=count($rop['rated']);
}
echo $total;
$total=0;

然后我得到一个错误参数,该参数必须是在$ count中实现可计数的数组或对象

2 个答案:

答案 0 :(得分:0)

count()函数用于计算数组中元素的数量。

您应该在每次循环中都递增变量。

$count = 0;
while($rop=mysqli_fetch_assoc($res)){
    $total+=$rop['rated'];
    echo $total;
    $count++;
}

但是没有必要在PHP中执行此操作,您可以在MySQL中执行此操作

SELECT SUM(rated) AS total, AVG(rated) AS avg, COUNT(*) AS count
FROM rating

答案 1 :(得分:0)

count($rop['rated'])

没有道理。您尝试计算一个值。

您应该查看mysql avg函数:https://www.w3schools.com/sql/sql_count_avg_sum.asp

select avg(rated) from rating;

应该为您完成工作