Slimer Posté 26 Octobre 2007 Posté 26 Octobre 2007 Bonsoir à tous Je vous explique mon petit problème. J'ai 3 tables -news -fichier -matière composition de news id_news titre descriptif date_upload matiere nom_fichier type_fichier composition de fichier id_fichier extension image composition de matiere id_matiere nom_matiere J'ai fais 2 clés étrangères matiere >id_matiere type_fichier>id_fichier je veux donc réaliser la requête suivante : Sélectionner mes news en fonction de la matière choisi et que ces même news affichent l'image de la table fichier dont id_fichier =type_fichier
marcb Posté 26 Octobre 2007 Posté 26 Octobre 2007 Bonsoir, Je ne trouve pas très logique d'appeler le champ id_fichier ou type_fichier selon la table dans laquelle il se trouve. En plus ta table fichier ne contient pas des fichiers mais des types de fichiers. Donc ça aurait été plus clair de nommer tes champs/tables ainsi : table news id_news titre descriptif date_upload id_matiere nom_fichier id_type_fichier table type_fichier id_type_fichier extension image Table matiere id_matiere nom_matiere Ensuite, pour ta requête : SELECT * FROM newsNATURAL JOIN type_fichierNATURAL JOIN matiereWHERE id_matiere=xxx en imaginant que chaque news a un type de fichier et une matière définis. M
Slimer Posté 26 Octobre 2007 Auteur Posté 26 Octobre 2007 (modifié) Ah ok donc en faite je dois remettre le nom des clés primaires de mes 2 autre tables dans ma table news NATURAL JOIN évite de d'écrire la chose suivante type_fichier.id_type_fichier $requete= mysql_query ('SELECT * FROM news LEFT JOIN matiere ON news.id_matiere=matiere.id_matiere WHERE matiere.nom_matiere="'.$_GET["action"].'"')or die ("requete errone"); c'est bon sa marche Modifié 26 Octobre 2007 par Slimer
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant