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 :

Modification de requête pour affichage différent


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 61
    Points
    61
    Par défaut Modification de requête pour affichage différent
    Bonjour,
    J'ai actuellement cette requête qui fonctionne
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCT t1.id, t1.id_club_dom, e1.club AS club_dom, t1.id_club_ext, e2.club AS club_ext, t2.id_match, t2.journee, t2.prono, COUNT( * ) 
    FROM proa_matchs AS t1
    INNER JOIN proa_clubs AS e1 ON e1.id_club = t1.id_club_dom
    INNER JOIN proa_clubs AS e2 ON e2.id_club = t1.id_club_ext
    LEFT JOIN proa_pronostics AS t2 ON t1.id = t2.id_match
    WHERE t2.journee = '24'
    GROUP BY t2.id_match, t2.prono
    qui me renvoie ce résultat
    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
    id  id_club_dom  club_dom  id_club_ext  club_ext  id_match  journee  prono  COUNT(*)  
    162 11 Rennes 8 Saint-Quentin 162 24 13 2 
    162 11 Rennes 8 Saint-Quentin 162 24 31 1 
    162 11 Rennes 8 Saint-Quentin 162 24 32 1 
    163 13 Narbonne 6 Beauvais 163 24 13 2 
    163 13 Narbonne 6 Beauvais 163 24 23 1 
    163 13 Narbonne 6 Beauvais 163 24 31 1 
    164 1 Poitiers 7 Cannes 164 24 30 1 
    164 1 Poitiers 7 Cannes 164 24 31 3 
    165 2 Paris 3 Tours 165 24 30 1 
    165 2 Paris 3 Tours 165 24 31 2 
    165 2 Paris 3 Tours 165 24 32 1 
    166 5 Toulouse 9 Montpellier 166 24 30 1 
    166 5 Toulouse 9 Montpellier 166 24 31 3 
    167 14 Saint-Brieuc 12 Alès 167 24 03 1 
    167 14 Saint-Brieuc 12 Alès 167 24 13 2 
    167 14 Saint-Brieuc 12 Alès 167 24 30 1 
    168 10 Sète 4 Tourcoing 168 24 03 1 
    168 10 Sète 4 Tourcoing 168 24 13 2 
    168 10 Sète 4 Tourcoing 168 24 23 1
    Je souhaiterais regrouper les données de manière à afficher une seule ligne par rencontre.
    Comment dois-je réécrire ma requête svp ?

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Ton group by doit se faire sur la référence du match (t1.id).

    Par contre, pour chaque match, tu as plusieurs prono, tu dois donc n'en garder qu'un : utiliser un MIN, MAX, COUNT ou enlever la jointure sur les pronos

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT DISTINCT t1.id, t1.id_club_dom, e1.club AS club_dom, t1.id_club_ext, e2.club AS club_ext, count(t2.id_match) AS NB_MATCH
    FROM proa_matchs AS t1
     
    INNER JOIN proa_clubs AS e1 ON e1.id_club = t1.id_club_dom
    INNER JOIN proa_clubs AS e2 ON e2.id_club = t1.id_club_ext
    LEFT JOIN proa_pronostics AS t2 ON t1.id = t2.id_match
    WHERE t2.journee = '24'
     
    GROUP BY t1.id_match

    Pourquoi fais tu une jointure sur la table proa_pronostics, c'est juste pour filtrer sur la colonne journee ?
    L'info du numéro de journée ne devrait-elle pas plutôt être dans la table proa_matchs ??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Points : 61
    Points
    61
    Par défaut
    Ta requête fonctionne mais elle ne me donne pas le résultat que je cherche. Je me suis sans doute mal exprimé.
    Je souhaite par ex pour le match Rennes / St Quentin dont les résultats sont affichés actuellement comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id  id_club_dom  club_dom  id_club_ext  club_ext  id_match  journee  prono  COUNT(*)  
    162 11 Rennes 8 Saint-Quentin 162 24 13 2 
    162 11 Rennes 8 Saint-Quentin 162 24 31 1 
    162 11 Rennes 8 Saint-Quentin 162 24 32 1
    une seule ligne avec l'id, les équipes, le no du match, la journee, Le nombre de pronostiqueurs à 13, le nb de pronostiqueurs à 31... 32, 03 13 et 23 s'il y en avait
    En clair, grouper ces 3 lignes en 1 seule mais avec toutes les données.

Discussions similaires

  1. [MySQL] Requête pour affichage nombre de "likes" / Ajax, PHP, MySQL
    Par E. Nigma dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/05/2015, 08h34
  2. [WD10] Requête pour affichage dans un champ
    Par esprit13 dans le forum WinDev
    Réponses: 11
    Dernier message: 14/03/2011, 15h15
  3. [AC-2007] filtrer requête pour affichage
    Par nagadscar dans le forum Access
    Réponses: 2
    Dernier message: 06/10/2010, 14h48
  4. requête pour affichage
    Par nabil192 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/09/2008, 10h59
  5. Requête SQL localisée pour affichage date/heure
    Par nicoboud2 dans le forum SQL
    Réponses: 1
    Dernier message: 11/05/2007, 10h55

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