php - 计算mysql中的所有原始值

标签 php mysql mysqli

我所做的只是将用户评分和评论保存到表中,然后从数据库中调用它。现在我想做的是将所有评分相加(例如:5+4+3=12),然后将它们除以评分计数(12/3 = 4),得到平均评分或总评分。

我能够显示评论,但我如何添加评级列中的所有值并获得平均值。

if (mysqli_num_rows($mesult) > 0) {
  $count = mysqli_num_rows($mesult);
  echo '<p class="">'.$count.' Reviews</p>';
  while($row = mysqli_fetch_assoc($mesult)) {
    $name =$row["name"];
    $text =$row["text"];
    $heading =$row["heading"];
    $rating =$row["rating"];
    echo '<div class="review"  itemscope itemtype="http://schema.org/Review">  <meta itemprop="itemReviewed" content ="'.$title.'"/> <p class="heading"><strong>'.$heading.'</strong></p><div class="ratings" itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"> <meta itemprop="worstRating" content = "1"/><span itemprop="ratingValue">'.$rating.'</span>/<span itemprop="bestRating">5</span></div><p class="reviewtext" itemprop="description">'.$text.'</p><div class="reviewby"  itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">'.$name.'</span></div></div>';
}

另外我要查询的是

$loutput ="SELECT * FROM rating
WHERE product=$ID";
$mesult = mysqli_query($conns,$loutput);

最佳答案

你也可以使用MySQL的AVG()来计算平均评分:

SELECT AVG(rating) AS avgRating FROM myTable;

这是将结果四舍五入到 X 位小数的方法:

 SELECT ROUND(AVG(rating), X) AS avgRating FROM myTable;

关于php - 计算mysql中的所有原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27901077/

相关文章:

php - yii\base\ErrorException - 找不到类 'app\controllers\EntryForm'

php - 如何通过 Cron 作业或脚本检查守护程序服务是否正在运行?

java.sql.SQLException : The server time zone value 'Hora de verano GMT' is unrecognized 异常

MySQL 优化所有表?

java - 如何将变量从 php 文件传递​​到 Android Activity ?

php - TYPO3:powermail 使用错别字从自己的扩展名中选择数据

mysql - SQL 显示多列

php - MySQL 和 PHP 性能

php - 避免删除 API 函数中的 SQL 注入(inject)

php - 扩展 Phalcon\Db\Adapter\Pdo\Mysql 时连接过多