IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Classement de résultat


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut Classement de résultat
    Bonjour à tous,

    J'ai un petit soucis en ce moment sur un classement de résultat MySQL, je vous explique le sujet.

    En gros, nous avons un jeu qui génère des highscore, si vous êtes dans le top 50, vous pouvez remplir vos informations pour rentrer dans les stats. Et donc une personne peut être deux fois dans la base.

    Mon problème : Je souhaites afficher les 10 meilleurs joueurs de ma base MySQL avec argument : Adresse email Unique et prendre le résultat le plus haut par personne.

    Ma base de donnée contient ces champs : id, nom, prenom, adresse, ville, cp, pays, email, score

    Donc j'ai essayé quelques scripts pour afficher les résultats, soit avec DISTINCT ou avec GROUP BY.

    Les résultats ne sont pas bons, quelques personnes ne ressort pas dans l'affichage de cette liste et pourtant elles sont bien dans le top 10.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query = mysql_query("SELECT * FROM codelyoko GROUP BY email ORDER by score DESC LIMIT 0,10");
    while($ds=mysql_fetch_array($query))
    {
    	echo $ds[score]. ' - ' . $ds[email] .'<br>';
    }
    Il me sort donc bien 10 personnes, mais le problème c'est que ça n'affiche pas le meilleur score des personnes qui sont deux fois ou plus dans la base.

    Si quelqu'un a une idée sur la chose, elle serait la bienvenue.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,


  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    +1 avec 2 fois ou plus ça devient en gros
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT e_mail, MAX(score)
    FROM la_table
    GROUP BY e_mail
    HAVING COUNT(*) >= 2

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT e_mail, MAX(score)
    FROM la_table
    GROUP BY e_mail

    il ne demande pas seulement les personnes avec 2 scores ou plus, il a juste des probs avec celles-ci

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Merci beaucoup, c'était la bonne syntaxe.

    En faite depuis le début mes requêtes étaient bonne mais j'avais oublié le MAX()

    voici la solution finale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT email, MAX(score)
    FROM codelyoko    
    GROUP BY email 
    ORDER BY MAX(score) DESC 
    LIMIT 0,10

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    et le deux fois ou plus dans la base?

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Enfaite je ne voulais pas voir les email en double, la requête que tu as donné lister des utilisateurs qui ont joué plusieurs fois :]

Discussions similaires

  1. [Toutes versions] Classement suivant résultat 2 colonnes
    Par campagne72 dans le forum Excel
    Réponses: 4
    Dernier message: 02/05/2012, 16h27
  2. comment faire un classements des résultats dans datareport?
    Par abouilyas dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 08/11/2011, 21h26
  3. Classement des résultats de recherches par pertinence
    Par marcandre dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/12/2007, 16h35
  4. Classement de résultats par nombre d'occurences
    Par pc.bertineau dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/03/2007, 17h07
  5. Réponses: 2
    Dernier message: 18/02/2006, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo