这是桌子
store_reviews
id rev_star
1 2
2 5
3 4
我想要做的是获取所有行并添加星号并除以行数(平均值),例如 2+5+4/3
我写了一个代码,但并没有添加所有行。
<?php
$stmtrev = $mysqli->prepare("SELECT * FROM store_reviews WHERE store_id=?");
$stmtrev->bind_param("i", $_GET['storeid']);
$stmtrev->execute();
$revrows = $stmtrev->get_result();
$stmtrev->close();
$total=0;
while ($stars = $revrows->fetch_assoc())
{
$count = ($total + $stars['rev_star']);
}
$count/count($revrows->fetch_assoc());
?>
谁能解释什么地方有问题,怎么办?
这是数据库可以为您完成工作的地方之一
SELECT AVG(rev_star) as average,
FROM store_reviews
WHERE store_id=?
至于为什么您的PHP脚本无法正常工作,您是在计算数据库中的列数,而不是行数。更糟糕的是,您通过在遍历整个结果堆栈之后尝试从结果堆栈中弹出结果集来执行此操作。结果对象告诉您返回了多少行
$total = 0;
while ($stars = $revrows->fetch_assoc()) $total += $stars['rev_star'];
$avg = $total / $revrows->num_rows;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句