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.







Répondre avec citation




Partager