所以我试图为“创建你自己的汉堡”应用程序创建一个高分表。
我的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,它仍然是顶级的Burger4,平均评分为2。
最佳选择是什么?我应该从SQL查询中划分还是有PHP修复?如果是这样,怎么样?
提前致谢,
托马斯
答案 0 :(得分:0)
您需要按比例订购:
ORDER BY Rating.TotalScore/Rating.TotalVotes DESC