所以我尝试为"创建您自己的汉堡"应用程序创建一个高分表。
My SQL Query:
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;
代码工作正常。问题是,它不首先反映最大的分割值。因此,尽管汉堡3的平均评分为1,但它仍然以平均评分2高于汉堡4。
最好的选择是什么?我应该从SQL查询或有一个PHP修复?如果有,怎么做?
提前感谢,
托马斯您需要按比例排序:
ORDER BY Rating.TotalScore/Rating.TotalVotes DESC