[PHP] Classement en PHP avec points identique
Résolu
osiris73
Messages postés
102
Statut
Membre
-
osiris73 Messages postés 102 Statut Membre -
osiris73 Messages postés 102 Statut Membre -
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 = requete( $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
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 = requete( $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
2 réponses
-
Je n'ai pas testé, il peut y avoir des erreurs, mais j'espère que tu comprendras mon intention et ma méthode... Et que tu sauras l'adapter à ta BDD ! ;-)
$requete = "SELECT * FROM 'joueur' ORDER BY VICTOIRE DESC"; $resultat = requete( $requete ); $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++; }
N'hésite pas si tu as des questions, j'imagine que ce n'est pas le script le plus clair du monde quant à ce qu'il est sensé faire ! :-S
J'ai fait ici que le résultat s'affiche par un print au lieu de mettre à jour la BDD. À toi d'adapter, ce n'est qu'une version "test" ;-)
Bonne chance ! -
Super
Merci coeus pour ta réponse
C'est exactement ce qui me fallait
Merci encore
Osiris73