それで、「独自のハンバーガーを作成する」アプリケーション用のハイスコア テーブルを作成しようとしています。
私の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 の修正はありますか? もしそうなら、どのように?
前もって感謝します、
トーマス