Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous,
Je voudrais faire un classement qui tienne compte du nombre de victoire identique
voici mon code
[c]$requete = "SELECT * FROM `joueur` ORDER BY VICTOIRE DESC";
$resultat =mysql_query( $requete );
$i=1;
while($data = mysql_fetch_array($resultat))
{
$query='UPDATE `joueur` SET `CLASSEMENT`='.$i.' WHERE `ID`='.$data['ID'].'';
$result = mysql_query($query) or die(mysql_error());
$i=$i+1;
}
mysql_close()[/c]
Par contre ce script ne tient pas compte des égalités de points ?
j'avoue que je n'ai pas trop d'idée sur la question
voici un exemple:
Alain à 15 victoires --> il est le premier
Paul à 10 victoires --> il se trouve 2eme
Antoine à 10 vitoires --> il est également 2eme
Christophe à 8 victoires --> il est 4ème
voilà ce que j'aimerais avoir
Si quelqu'un à une idée
Merci d'avance
Osiris73
Hors ligne
Il faut traiter les positions avant de faire une quelconque mise à jour ! ^^'
$i=1;
$classement = array();
// Construction de classement
while($data = mysql_fetch_array($resultat))
{
if( !empty($classement[$data['victoire']]) ) // il existe déjà une personne avec ce nombre de victoires
array_push($classement[$data['victoire']],$data['id']); // ajout de notre Xeme personne
else
$classement[$data['victoire']] = array($data['id']); // ajout de la première personne trouvée avec ce nombre de victoires
}
Ainsi tu obtiens un tableau où tous les joueurs avec le même nombre de victoires sont regroupés.
Donc => une place pour un index du tableau, or chaque valeur du tableau est un tableau contenant le/les joueur(s) avec ce nombre de victoires.
Hors ligne
voici le script qui permet de faire ce que je veux
$lastScore = '';
$displayPos = 1;
$realPos = 1;
while($data = mysql_fetch_array($resultat)) {
$joueur = $data['nom'];
$currentScore = $data['score'];
if ($currentScore != $lastScore) { $displayPos = $realPos; }
$lastScore = $currentScore;
print $joueur.' - '.$displayPos;
$realPos++;
}
Merci à coeus
Osiris73
Hors ligne
Saluton,
Tu sais ce que je pense de SELECT *...
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1