flo001 Posté 13 Mai 2008 Posté 13 Mai 2008 Salut à tous! Voici mon problème, 3 tables: - "vidéo" avec |id_video|nom_video| - "catégorie" |id_categorie|nom_categorie| - "lien_categorie" |id_video|id_categorie| un vidéo peut appartenir a plusieurs catégories, comment en une requéte pouvoir afficher une liste comme celle la: vidéo1 : cat1, cat5, cat10 video2 : cat3, cat4 video3 : cat2, cat8 .... Je vous remercie. Florent
Sarc Posté 13 Mai 2008 Posté 13 Mai 2008 Bonjour ! Je vais tenter de le faire sans échauffement, donc excuse-moi si je fais une erreur bête et méchante... En fait, ce que je fais dans ce cas-là, c'est un truc du genre : SELECT id_cat b, nom_cat b, id_vid a FROM categories b, videos a, liens c WHERE c.id_vid=a.id_vid AND c.id_cat=b.id_cat ORDER BY a.id_vid Ensuite, en PHP, tu peux traiter les données : while($donnees=mysql_fetch_array(mysql_query($rq))){ extract($donnees); $tableau_traites[$id_vid][] = $nom_cat;} Puis enfin, pour afficher les données foreach($tableau_traites AS $clef=>$tableau_cat){ echo "vidéo $clef : ".explode(', ', $tableau_cat);} Voilà, ça devrait pouvoir ressembler à ça.
flo001 Posté 13 Mai 2008 Auteur Posté 13 Mai 2008 Wahouu pinaise, j'ai pas tout compris, bon je vais essayer de démêler ca, je te remercie! Si vous connaissez d'autres techniques je suis prenneur.
Sarc Posté 13 Mai 2008 Posté 13 Mai 2008 J'ai oublié les sous-titres en Français... J'espère que tu lis à peu près le SQL, déjà. La requête va juste chercher les vidéos et les catégories qui correspondent. En gros ça va renvoyer : vidéo1 catégorie1 vidéo1 catégorie5 vidéo1 catégorie10 vidéo2 catégorie3 etc... Le premier code PHP va juste ranger dans un tableau les catégories associées au vidéo. A la fin, tu auras un tableau qui a cette gueule : tableau[vidéo1][0] = nom_categorie1 tableau[vidéo1][1] = nom_categorie5 tableau[vidéo1][2] = nom_categorie10 tableau[vidéo2][0] = nom_categorie3 etc... Le deuxième code PHP va parcourir le tableau par rapport à la première dimension. Donc en rentrant dans le foreach, il va avoir $clef qui sera vidéo1, et $tableau_cat qui sera le tableau : $tableau_cat[0] = nom_categorie1 $tableau_cat[1] = nom_categorie5 $tableau_cat[2] = nom_categorie10 Faire un écho de la clef te permet d'afficher le numéro de la vidéo. Et l'implode sur le tableau permet de t'afficher tous les éléments du tableau, à la suite, séparés par une virgule... Voili voilou !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant