【发布时间】:2013-05-04 13:51:49
【问题描述】:
所以我试图为“创建自己的汉堡”应用程序创建一个高分表。
我的 SQL 查询:
SELECT Save_Burger.Name, Rating.TotalScore, Rating.TotalVotes FROM Save_Burger INNER JOIN Rating ON Save_Burger.RatingID=Rating.RatingID ORDER BY Rating.TotalScore DESC
返回:
|---------------------------------------|
| Name | TotalScore | TotalVotes |
|Burger1 | 11 | 3 |
|Burger2 | 6 | 2 |
|Burger3 | 5 | 5 |
|Burger4 | 2 | 1 |
|Burger5 | 0 | 0 |
|---------------------------------------|
然后我使用 PHP 来划分 TotalScore 和 TotalVotes:
if (($row["TotalScore"] != 0) || ($row["TotalVotes"] != 0)) {
$TotalRatingScore = $row["TotalScore"] / $row["TotalVotes"];
echo substr($TotalRatingScore, 0, 3);
}
else {
echo 0;
代码运行良好。问题是它没有首先回显最高分割值。因此,即使 Burger3 的平均评分为 1,它仍然以平均评分 2 超过 Burger4。
最好的选择是什么?我应该从 SQL 查询中分离出来还是有 PHP 修复?如果有,怎么做?
提前致谢,
托马斯
【问题讨论】:
-
顺便说一句,我使用 while($row = mysqli_fetch_array($variable)) 进行回显。
标签: php sql join rating divide