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
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 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 " ;
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.
Partager