Trier des resultats

Résolu
troisbuses Messages postés 2 Statut Membre -  
troisbuses Messages postés 2 Statut Membre -
Je cherche à trier et afficher par ordre décroissant une table (sans déclaration array)

Voici un exemple d'une partie de cette table :
id_joueur, pseudo, points
25 michel 5
30 sophie 2
25 michel 1
....
34 jean 3

Je voudrais afficher un classement par points (cumulés) tel que ci-dessous :

25 michel 6
34 jean 3
...
30 sophie 2

actuellement mon code permet d'afficher dans le désordre :

34 jean 3
25 michel 6
...
30 sophie 2

<?
$requete_joueur = mysql_query("SELECT joueur.id_joueur, joueur.pseudo, coupe.points FROM 'coupe'INNER JOIN 'joueur' ON joueur.id_joueur = coupe.id_joueur WHERE joueur.actif =0 GROUP BY 'id_joueur'");
$nb_joueur= mysql_num_rows($requete_joueur);

for ($x=0;$x<$nb_joueur;$x++) {
$id_equip[$x] = mysql_result($requete_joueur,$x,"id_joueur");
$id_pseudo[$x] = mysql_result($requete_joueur,$x,"pseudo");

$requete_point_joueur =mysql_query("SELECT joueur.id_joueur, joueur.pseudo, coupe.points FROM 'coupe' INNER JOIN 'joueur' ON joueur.id_joueur = coupe.id_joueur WHERE joueur.actif =0 AND coupe.id_joueur=".$id_equip[$x]);
$nb_jeu= mysql_num_rows($requete_point_joueur);

// le cumul des points par joueurs
for ($y=0;$y<$nb_jeu;$y++) {
$points[$x] = $points[$x] + mysql_result($requete_point_joueur,$y,"points");
}
}

// l'affichage dans le désordre
for ($x=0;$x<$nb_joueur;$x++) echo $id_pseudo[$x]." - ".$points[$x]."<br />";
?>

J'apprends sur le net et n'ai pas les fondamentaux, ce qui fait que je fais surement bcp de choses lourdes et moches... (d'ou mon pseudo)
merci de votre aide.

2 réponses

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Tu pourrais récupérer le cumul de tes points directement en sql, ce qui est plus optimisé (moins de code et plus rapide) :

    SELECT joueur.id_joueur, joueur.pseudo, SUM(coupe.points) AS totalpoints
    FROM joueur LEFT JOIN coupe ON joueur.id_joueur = coupe.id_joueur
    WHERE joueur.actif  = 0
    GROUP BY joueur.id_joueur
    ORDER BY totalPoints DESC


    Cette requête devrait te retourner la liste complète des joueurs avec la somme de leurs points, trié selon le total des points par ordre décroissant.

    Boonne journée
    2
  2. troisbuses Messages postés 2 Statut Membre
     
    Merci grandement Pitet !
    0