Hallo,
Ik probeer een rangschikking te maken voor deelnemers aan een voetbalpool.
Ik gebruik hiervoor de volgende code:
<?
// sorteert de lijst 'user' op puntentotaal ('curpoint')
$query = "SELECT * FROM user ORDER BY curpoint DESC";
$ranking = mysql_query($query) or die('Zoekopdracht niet gelukt: ' . mysql_error());
$aantal = mysql_num_rows($ranking);
// Iedere gebruiker krijgt een rangschikking, a.d.h.v. gesorteerde lijst
for($i=1; $i <= $aantal; $i++) {
while($result1 = mysql_fetch_array($ranking)) {
$waarde = "currank";
$rang = $i++;
// plaatst rangschikkingwaarde ('$rang') in record van gebruiker ('currank')
$query="UPDATE user SET ".$waarde." ='".$rang."' WHERE ".email." = '".$result1['email']."'";
// echo $query;
$invoer = mysql_query($query);
}
}
?>
Dit werkt in principe goed. Probleem is echter dat de rangschikking gewoon doortelt als deelnemers hetzelfde aantal punten hebben.
Dus als Jan 150 punten heeft, Piet 140, Henk 140, en Karel 130. Dan zou de rangschikking moeten zijn:
1 Jan 150
2 Piet 140
2 Henk 140
4 Karel 130
Op dit moment is het echter gewoon oplopend:
1 Jan 150
2 Piet 140
3 Henk 140
4 Karel 130
Hoe kan ik dit oplossen? Wellicht is de oplossing simpel, maar ik ben nog een echte PHP-noob... :-)
745 views