我将如何运行PDO查询,然后使用PHP处理结果以根据用户输入的评论为特定空白输出平均评分?
每次审核均根据2个标准(服务和价格)进行加权。两者均为0-5,因此最终平均值的权重为10。每个评论的基础上,我目前使用以下代码来计算特定评论的平均评分。
$rating_total = $row['review_service_rating'] + $row['review_price_rating'];
$average_rating = ($rating_total / 100) * 100;
因此,对于每条评论,review_service_rating和review_price_rating都有2条sql行,两者均不在5条之内。
但是我不确定如何计算所有评分,然后从10中确定特定页面的基本等级。
假设我们有3条评论。该评论是7 / 10、8 / 10和10/10。从逻辑上讲,我们将所有数字相加,然后将所有/ 10相加得到。 25/30,等于83.33,在我的情况下为8/10。这是我不确定该怎么做的2个步骤。
1-从SQL获取所有评分并计算它们
2-根据所有评分确定平均值/ 10
当前从数据库中提取数据的PDO代码以及每个特定用户拥有的评论数。
$q = $db->prepare("SELECT * FROM reviews WHERE assigned_id = :review_id ORDER BY review_posted DESC");
$q->execute(array(':review_id' => $_GET['page_id']));
$r = $q->fetchAll(PDO::FETCH_ASSOC);
echo '<br><div class="well">Average Rating</div><br>';
foreach($r as $row) {
$q = $db->prepare("SELECT * FROM users WHERE user_id = :review_user_id");
$q->execute(array(':review_user_id' => $row['user_id']));
$r = $q->fetch(PDO::FETCH_ASSOC);
$q = $db->prepare("SELECT COUNT(*) FROM reviews WHERE user_id = :review_user_id");
$q->execute(array(':review_user_id' => $row['user_id']));
$user_reviews = $q->fetchColumn();
最佳答案
假设每个用户给x点(上限为10),您必须将它们相加(x),然后除以rating_times,得到平均评分。
例如
User 1 rate 7
User 2 rate 6
User 1 rate 5
=> (7+6+5)/3 = 6
因此,当用户评级为点时,您只需再添加一个字段。
然后使用查询SUM求和点,然后除以查询COUNT。
忘记(x ** / 10 **)。
最后,使用2个平均评分(价格和服务),将它们之和除以2,即可得出总体评分。
关于php - 用PHP计算总平均评分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44830069/