boulon Posté 7 Avril 2006 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant