Hallo, ik heb de query "SELECT * FROM gebruikers ORDER BY munten LIMIT 10".
In de rij "munten" staat gewoon een getal en dan wil ik dus een top 10 script maken. Mijn vraag is, hoe kan ik er voor zorgen dat het hoogst aantal punten bovenaan komt te staan en niet het laagst aantal punten bovenaan.
Mvg,
ChocoEi
Die ze MySQL-handleiding, hoofdstuk 13.

ORDER BY munten DESC
Nee dit werkt niet!
Ik heb de code:
<?php
include 'config.php';
include 'htmltop.php';
include 'safe.php';
$query = "SELECT * FROM gebruikers ORDER BY munten DESC LIMIT 10";
$result = mysql_query($query) OR die ("Sorry, we zijn in onderhoud!");
$nrows = mysql_num_rows($result);
echo '<center><h1>Top 10 beste spelers</h1>';
echo '<table cellspacing="15">';
echo '<tr><td><b>Rang:</td>
	<td><b>Naam:</td>
	<td><b>Muntjes:</td>
	<hr></tr>';
for ($i=0;$i<$nrows;$i++)
{
	$n = $i + 1;
	$top = mysql_fetch_array($result);
	extract($top);
	echo "<tr>
	<td>$n.</td>\n
	<td>$naam</td>\n
	<td>$munten</td>\n
	</tr>\n";
}
echo "</table>\n";
?>

En ik krijg:
http://marnix3.ma.funpic.de/vip/top.php
Integendeel, het werkt uitstekend! Zie de output: 8 -> 7 -> 3 -> 2 -> etc.

Probleem is alleen dat jij getallen als tekst opslaat... Sla getallen op in een INT, DECIMAL of een ander nummeriek formaat en het probleem is opgelost. Ik gok dat je een VARCHAR hebt misbruikt.

Reageren