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

SQL Procédural MySQL Discussion :

regrouper des informations dans une seule ligne


Sujet :

SQL Procédural MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut regrouper des informations dans une seule ligne
    Bonjour

    Je voudrais obtenir le résultat suivant:



    Directeur |Statut | Spécialité | Paris | E mail
    -----------------------------------------------------------------------------------------------
    Michel A. | Directeur | Anthropologie, identité, métissage | non | michel@e.com
    Elsa A. | professeur |Cinéma, Journalisme | oui |Alsa@e.com
    Domi B. | Directeur | Littérature, théâtre, cinéma | non | domi@e.com


    mais au lieu de ça J'obtiens:

    Directeur |Statut | Spécialité | Paris | E mail
    -----------------------------------------------------------------------------------------------
    Michel A. | Directeur | Anthropologie | non | Michel@e.com
    Michel A. | Directeur | identité | non | Michel@e.com
    Michel A. | Directeur | métissage | non | Michel@e.com
    Elsa A. | professeur |Cinéma | oui |Alsa@e.com
    Elsa A. | professeur |Journalisme | oui | Alsa@e.com
    Domi B. | Directeur | Littérature | non | domi@e.com
    Domi B. | Directeur | théâtre | non | domi@e.com
    Domi B. | Directeur | cinéma | non | domi@e.com


    J'utilise SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM chercheur AS t1, appartenanceED AS t2, ecoleDoctorale AS t3,statutChercheur AS t4, chercheurSpecialite AS t5, specialite AS t6 
    WHERE t1.idChercheur = t2.idChercheur AND t2.idEcoleDoctorale = t3.idEcoleDoctorale AND t1.idStatutChercheur = t4.idStatutChercheur AND t1.idChercheur = t5.idChercheur AND t5.idSpecialite = t6.idSpecialite AND t3.numeroEcoleDoctorale =122 AND t1.nature = 'enseignant chercheur' 
    ORDER BY t1.nom 
    LIMIT 0, 30 " ;
    Pour éviter cela, il faudrait que j'utilise GROUP_CONCAT() dans mysql de cette façon:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
    GROUP_CONCAT(DISTINCT t6.nomChercheurSpecialite 
    ORDER BY nomChercheurSpecialite ASC SEPARATOR ",") 
    FROM chercheur AS t1, appartenanceED AS t2, ecoleDoctorale AS t3,statutChercheur AS t4, chercheurSpecialite AS t5, specialite AS t6 
    WHERE t1.idChercheur = t2.idChercheur AND t2.idEcoleDoctorale = t3.idEcoleDoctorale AND t1.idStatutChercheur = t4.idStatutChercheur AND t1.idChercheur = t5.idChercheur AND t5.idSpecialite = t6.idSpecialite AND t3.numeroEcoleDoctorale =122 AND t1.nature = 'enseignant chercheur' 
    GROUP BY t1.nom 
    LIMIT 0, 30 " ;

    MAIS LE SERVEUR QUI HEBERGE LE SITE EST EN MYSQL 4.0
    ET LA FONCTION GROUP_CONCAT() n'existe qu'à partir de mysql 4.1


    Ma question: comment obtenir le même résulatat avec du PHP, en tenant compte de
    la version MYSQL 4.0 et PHP 4?

    Merci

    Sujet déplacé depuis la section PHP par BiD0uille.

  2. #2
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Bonjour,

    En effet, il faut opter pour une solution en PHP. Si tu peux fournir la boucle qui permet de retirer les informations, on pourrait te proposer les modifications nécessaires.

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    +1

    Accessoirement, un SGBD n'est pas fait pour faire de la cosmétique.
    Donc même si tu étais en 4.1+, ça serait moyennement le rôle de MySQL d'effectuer un tel formatage du résultat...

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/12/2014, 12h42
  2. Réponses: 3
    Dernier message: 25/05/2012, 02h19
  3. Regroupement d'informations sur une seule ligne
    Par KiteAtao dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/03/2011, 09h27
  4. Récuperer des informations dans une ligne
    Par Au2laDeNosReves dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/04/2008, 13h22
  5. Regrouper des colonnes dans une ligne
    Par aturlan dans le forum Access
    Réponses: 1
    Dernier message: 11/01/2006, 22h05

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