Trier des resultats
Résolu
troisbuses
Messages postés
2
Statut
Membre
-
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.
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.
A voir également:
- Trier des resultats
- Trier un tableau excel - Guide
- Resultats foot - Télécharger - Vie quotidienne
- Logiciel pour trier les photos automatiquement gratuit - Guide
- Les résultats concernant les personnes sont limités - Accueil - Confidentialité
- Samia, kevin et jason ont gardé la trace de leurs ventes quotidiennes du mois de juillet 2016. dans la feuille bilan, il manque les résultats de jason. insérez une colonne entre samia et kevin et reportez-y les résultats de jason. quel mot secret apparait en f2 ? - Forum LibreOffice / OpenOffice
2 réponses
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) :
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
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