在php中添加所有行值

时间:2016-11-22 13:09:28

标签: php

这是表格

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());
        ?>

任何人都可以解释什么是错的,可以做些什么?

1 个答案:

答案 0 :(得分:0)

这是您的数据库可以为您完成工作的地方之一

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;