boulon Posté 7 Avril 2006 Partager Posté 7 Avril 2006 (modifié) Bonjour Je voudrais obtenir le résultat suivant: Directeur |Statut | Spécialité | Paris | E mail ----------------------------------------------------------------------------------------------- Michel A. | Directeur | Anthropologie, identité, métissage | non | Michel_AT_e.com Elsa A. | professeur |Cinéma, Journalisme | oui | Alsa_AT_e.com Domi B. | Directeur | Littérature, théâtre, cinéma | non | domi_AT_e.com J'obtiens: Directeur |Statut | Spécialité | Paris | E mail ----------------------------------------------------------------------------------------------- Michel A. | Directeur | Anthropologie | non | Michel_AT_e.com Michel A. | Directeur | identité | non | Michel_AT_e.com Michel A. | Directeur | métissage | non | Michel_AT_e.com Elsa A. | professeur |Cinéma | oui | Alsa_AT_e.com Elsa A. | professeur |Journalisme | oui | Alsa_AT_e.com Domi B. | Directeur | Littérature | non | domi_AT_e.com Domi B. | Directeur | théâtre | non | domi_AT_e.com Domi B. | Directeur | cinéma | non | domi_AT_e.com J'utilise 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: 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 Modifié 7 Avril 2006 par boulon Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant