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:
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:
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
Citation:
Sujet déplacé depuis la section PHP par BiD0uille.