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

PHP & Base de données Discussion :

Comment Extraire les 15 meilleurs résultats


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Comment Extraire les 15 meilleurs résultats
    Bonjour à tous,

    Merci pour cet excellent site très complet et les nombreux tutoriels excellentissimes.

    Je me permet de poster pour faire appel à vos connaissances.

    Le contexte :
    Mon niveau en Php et Mysql : débutant enfin pas tout à fait j'ai lu et fait les exercices des tutos .
    Je fais parti d'un club de poker, nous organisons des tournois, chaque participants marquent des points selon son classement lors de ces tournois. Nous établissons un classement en fonction du nombre de points obtenus. Bon juste que la c'est du grand classique.
    Notre problème est que nous souhaitons limité le cumul des points pour chaque participants à ses 15 meilleurs tournois dans l'année. C'est la ou cela se complique.
    J'arrive à affiché le total de points, je fait le classement de chaque joueur mais impossible de faire en sorte que seul ses 15 meilleurs tournois soient pris en compte.

    Pouvez vous donc m'aider dans ma démarche ?
    Si je n'ai pas été clair n'hésitez pas à me le dire

    Merci d'avance pour votre aide

    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $query = 'SELECT Po.id_player, Pl.nickname,' 
    
    				.'SUM(IF(Po.rank = 1, 1, 0)) AS Wins, '
    
    				.'SUM(IF(Po.rank BETWEEN 1 AND 9, 1, 0)) AS FinalTables, '
    
    				.'SUM(Po.tournamentpts) AS PlayerPoints, ' (Donc sauf erreur de ma part c'est sur ce morceau de requête que je dois limiter au 15 meilleurs tournois)
    
    				.'COUNT(Po.id_event) AS GamesPlayed '
    
    				.'FROM #__pokerpoints AS Po '
    
    				.'JOIN #__pokerplayers AS Pl ON Po.id_player = Pl.id '
    
    				.'JOIN #__pokerevents AS Ev ON Po.id_event = Ev.id '
    
    				.'WHERE Ev.id_season = '.$season.' '
    
    				.$where_venue
    
    				.'GROUP BY Po.id_player '
    
    				.'ORDER BY '.$order.' '.$order_Dir;
    
    			return $query;

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    bonjour,

    désolé je n'ai pas beaucoup de temps donc je n'ai pas essayé de l'intégrer complètement à ta requête
    mais typiquement voilà ce qu'il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT SUM(pts_max_joueur) AS total_pts
    FROM (SELECT tournamentpts AS pts_max_joueur 
          FROM   po
          ORDER BY tournamentpts DESC LIMIT 15) P
    dit moi si tu n'arrive pas à l'intégrer, j'essaierai de prendre le temps de regarder

    Cordialement
    Greg

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je te remercie pour ta réponse malheureusement ca fait trois jour que je suis dessus et j'arrive pas à l'intégrer à ma requête. Te serait il possible de te pencher sur le problème ?.

    En tout cas un grand merci pour tes efforts

  4. #4
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 130
    Points : 373
    Points
    373
    Par défaut
    Salut, sinon tu peux essayer lors de l'affichage de prendre les 15 premiers résultat

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ritter jack Voir le message
    Salut, sinon tu peux essayer lors de l'affichage de prendre les 15 premiers résultat
    ? je ne comprends ce que tu veux dire

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Points : 62
    Points
    62
    Par défaut
    rajoute un limit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $query = 'SELECT Po.id_player, Pl.nickname,' 
     
    				.'SUM(IF(Po.rank = 1, 1, 0)) AS Wins, '
     
    				.'SUM(IF(Po.rank BETWEEN 1 AND 9, 1, 0)) AS FinalTables, '
     
    				.'SUM(Po.tournamentpts) AS PlayerPoints, ' (Donc sauf erreur de ma part c'est sur ce morceau de requête que je dois limiter au 15 meilleurs tournois)
     
    				.'COUNT(Po.id_event) AS GamesPlayed '
     
    				.'FROM #__pokerpoints AS Po '
     
    				.'JOIN #__pokerplayers AS Pl ON Po.id_player = Pl.id '
     
    				.'JOIN #__pokerevents AS Ev ON Po.id_event = Ev.id '
     
    				.'WHERE Ev.id_season = '.$season.' '
     
    				.$where_venue
     
    				.'GROUP BY Po.id_player '
     
    				.'ORDER BY '.$order.' '.$order_Dir
                                                       .'LIMIT 0,15';
     
    			return $query;

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse mais sauf erreur de ma part cela va limiter ma requête aux 15 premiers résultats alors que j'ai besoin des 15 meilleurs

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 76
    Points : 62
    Points
    62
    Par défaut
    quelle est la différence entre les 15 premiers et les 15 meilleurs vu que tu as trié tes résultats ? Il faut que tu fasses deux requetes en fait :
    - une requete principale qui te classe les joueurs
    - puis pour chaque joueur une requete personnelle qui classe ses tournois dans l'ordre, avec la fonction limit pour ne garder que les 15 meilleurs résultats

    voilà j'espère t'avoir éclairé

Discussions similaires

  1. [Talend open studio] Comment extraire les données à partir d'Oracle ?
    Par aymengomez dans le forum Développement de jobs
    Réponses: 19
    Dernier message: 15/05/2009, 12h09
  2. Réponses: 6
    Dernier message: 07/03/2007, 14h04
  3. Réponses: 1
    Dernier message: 18/12/2006, 10h20
  4. [C#] Comment extraire les commentaires ?
    Par titi_77 dans le forum C#
    Réponses: 4
    Dernier message: 30/05/2006, 17h31
  5. [C#] Comment extraire les parties d'une string ?
    Par mrpowerboy dans le forum C#
    Réponses: 3
    Dernier message: 21/02/2006, 09h10

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