まず第一に、mysql_関数を使用するべきではありません。それらは非推奨です。少なくとも、mysqli_ に切り替える必要があります。 (非常に簡単な切り替え)、またはより良い方法として、PDOの使用方法を学びます。 。切り替えるのは少し異なり、より複雑ですが、コードはより良く、より安全になります。
それが邪魔にならないように:あなたの論理はかなり正確です。結果を各コースの上位5つの結果に制限する 私の知る限り、1つのクエリでSQLを使用して簡単に実行できるものではないため、計画は適切です。コースのリストをクエリしてから、既存のクエリでそれらを循環し、コースごとに1回実行し、制限5を取得します。トップ5。
これはコースごとのテーブルであるため、このループ内でもテーブル生成を維持することをお勧めします。実行する必要があるのは1回だけなので、VehNameクエリをループの外に移動する必要があります。
また、未承諾のPHPアドバイスもあります。タグの外側のテキストは直接出力されるだけなので、組み込みのテンプレートと代替構文 テーブル生成コードをより良くするために:
<?php
/* Gather your data here... */
?>
<table>
<tr><th>Best Scores for <?php echo $vehName['Veh_name'] ?></th></tr>
</table>
<table border='1'>
<tr>
<th>Course</th>
<th>Score</th>
<th>Distance</th>
<th>Player</th>
<th>Time</th>
</tr>
<?php while($row = mysql_fetch_array($result_HiScores)): ?>
<tr>
<td><?php echo $row['course'] ?></td>
<td><?php echo $row['score'] ?></td>";
<td><?php echo $row['distance'] ?></td>";
<td><?php echo $row['User'] ?></td>";
</tr>
<?php endwhile; ?>
</table>