我得到了一个查询代码,该查询代码从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中实现可计数的数组或对象
答案 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;
应该为您完成工作