I'm trying to sort a high scores list, but am not too sure where to start. I'm aware of the "sort" method, but am unable to keep the corresponding name with the score, if I use sort($score).
Here's my code:
mysql_connect(localhost,$dbuser,$dbpass);
mysql_select_db($dbname) or die("Unable to select database!");
$query = "SELECT * FROM scores";
$result = mysql_query($query);
$i = 0;
while ($row = mysql_fetch_assoc($result))
{
$id[$i] = $row['id'];
$name[$i] = $row['name'];
$score[$i] = $row['score'];
$date[$i] = $row['date'];
$i++;
}
sort($score);
$entries = $i;
$i = 0;
echo '<table cellspacing=0 border=5>';
while ($i != $entries)
{
echo '<tr><td>';
echo "$id[$i]</td><td>$name[$i]</td><td>$score[$i]</td><td>$date[$i]";
echo '</tr></td>';
$i++;
}
$i = 0;
This will produce
1 user 0 45 date
2 user 1 34 date
3 user 2 68 date
4 user 3 84 date
5 user 4 77 date
6 user 5 48 date
7 user 6 70 date
8 user 7 5 date
9 user 8 17 date
10 user 9 65 date
If I use the sort($score) method, it produces
1 user 0 5 date
2 user 1 17 date
3 user 2 34 date
4 user 3 45 date
5 user 4 48 date
6 user 5 65 date
7 user 6 68 date
8 user 7 70 date
9 user 8 77 date
10 user 9 84 date
Should the sorting be done while I'm reading from the database? If so, how can I do that?
Thanks. 🙂