begin process at 2010 02 10 11:39:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Tri sur jonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tri sur jonction

lundi 25 août 2008 à 09:17:43 | Tri sur jonction

Straw

Bonjour à tous et merci d'avance pour ceux qui pourront m'aider,

Je ne maîtrise pas encore très bien les requêtes de jonction, mais celle-ci va certainement vous paraître simple...

Je dois lister des films et des acteurs. Chaque film pouvant avoir plusieurs acteurs, et chaque acteurs plusieurs films.
J'ai donc 3 tables :
  • Une table FILMS (avec id_film, titre, realisateur)
  • Une table ACTEURS (avec id_acteur, nom, prénom)
  • Une table de jonction FILMS_ACTEUR (avec id_film et id_acteur)
Voici ma requête pour afficher tous les films, et en dessous, les acteurs du film.

$sql="select titre, id_film from films order by titre";
           
            $rs=mysql_query($sql) or die (
mysql_error());
           
            while ($row=mysql_fetch_assoc($rs)) {
           
            print "<div>";
            print "<h1>".$row["titre"]."</h1>";
           
            $sql2="select nom, prenom
            from films_acteurs
            INNER JOIN acteurs ON films_acteurs.id_acteur=acteurs.id_acteur
            WHERE id_film =".$row["id_film"];

           
            $rs2=mysql_query($sql2) or die (mysql_error());
           
            print "<ul>";
            while ($row2=mysql_fetch_assoc($rs2)) {
                print "<li><strong>".$row2["prenom"]. " " .$row2["nom"]."</strong></li>";
           
            }
            print "</ul>";
            print "</div>";
           
            }

Le code fonctionne très bien, mais j'aimerais ajouter un tri de genre (masculin ou féminin). Donc, rajouter une colonne GENRE dans la table ACTEURS, et que ça n'affiche par exemple que les acteurs masculins ou féminin suivant la demande.

J'ai essayé cette requête mais ça n'a pas fonctionné :


            $sql2="select nom, prenom, genre
            from films_acteurs
            INNER JOIN acteurs ON films_acteurs.id_acteur=acteurs.id_acteur
            WHERE id_film =".$row["id_film"] . "AND WHERE acteurs.genre=masculin";


J'ai une erreur de syntaxe que me dit php...

Je ne sais pas quoi faire

Help please

lundi 25 août 2008 à 10:55:05 | Re : Tri sur jonction

LeNoyauDur

Bonjour,

Pour ton problème de requete il faut juste savoi une chose : les données alphanumériques sous MySql doivent être entourées de '

donc code corrigé :
$sql2="select nom, prenom, genre
            from films_acteurs
            INNER JOIN acteurs ON films_acteurs.id_acteur=acteurs.id_acteur
            WHERE id_film =".$row["id_film"]
. "AND WHERE acteurs.genre='masculin'"; 

Tout simplement

Cordialement

LeNoyauDur


I'd rather be insulted by you than someone i respect.
lundi 25 août 2008 à 11:13:32 | Re : Tri sur jonction

nicomilville

Membre Club
Réponse acceptée !
Salut,

Il reste tout de même une erreur...

Il ne faut pas mettre de deuxième where, un AND suffit...

a++

Si la réponse vous convient, pensez : Réponse acceptée !

lundi 25 août 2008 à 11:18:04 | Re : Tri sur jonction

Straw

Merci pour ta réponse LeNoyauDur, mais voici l'erreur qu'il m'indique quand je met les ' :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE acteurs.genre='masculin' at line 4

Que faire donc?


lundi 25 août 2008 à 11:20:28 | Re : Tri sur jonction

Straw

J'écrivais ma réponse à NoyauDur pendant ta réponse nicomilville,

Mais maintenant mon problème est résolu

Merci beaucoup ! C'était en effet une bête chose...

Encore merci!

Bonne journée !
lundi 25 août 2008 à 11:21:01 | Re : Tri sur jonction

LeNoyauDur

Réponse acceptée !
Comme te le disais nicomilville, il faut un seul WHERE dans la requète après la liste de tes tables et il faut remplacer ton WHERE AND juste par un AND

Donc requete modifiée :
$sql2="select nom, prenom, genre
            from films_acteurs
            INNER JOIN acteurs ON films_acteurs.id_acteur=acteurs.id_acteur
            WHERE id_film =".$row["id_film"] . "AND WHERE acteurs.genre='masculin'";
 

Cordialement


I'd rather be insulted by you than someone i respect.
lundi 25 août 2008 à 11:24:16 | Re : Tri sur jonction

nicomilville

Membre Club
De rien, heureux d'avoir pu t'aider...

a++

Si la réponse vous convient, pensez : Réponse acceptée !



Cette discussion est classée dans : id, film, acteur, films, acteurs


Répondre à ce message

Sujets en rapport avec ce message

histoire d'appostrophes [ par angelique ] Bonjour,Soit une table films avec comme champs film_id et film_titre.Lorsque j'interroge ma base de donnée comme suit :select film_id from films where Requete SQL [ par rigui ] Bonjour à tous,Voilà j'ai un souci pour effectuer une requete :J'ai une table "Film" avec un champ "acteur".Sur ce champ"acteur" j'ai plusieurs valeur joomla moteur de recherche [ par haythemsorbonne ] Chers Joomlistes, Je demande votre aide de toute urgence pour un problème de moteur de recherche sur le site que je conçois actuellement. Je vous expo probleme de mise en forme d'une base sql [ par stick059 ] voila, j'ai un pb avec sql :J'ai une base de donnée de film.Dans cette base, il y a plusieurs champ acteurs, exemple :si un film comporte 3 acteurs, j Besoin d'aide pour les Cookies .... SVP :'( [ par Astalavista ] Alors, j'ai un site en PHP ou il y a une partie mebre. pour securiser un num. ID et le pseudo sont enregistrer dans un cookies de la forme :S mysql_fetch_row [ par angelique ] Bonjour,Après avoir rempli un formulaire, je voudrais utiliser les résultats d'une requête pour alimenter une autre table de ma base :$resultatid = my Récupérer le contenu d'une variable depuis un frameset dans un des cadres qui le composent [ par sethmes ] Bonjour,Je crée un site dont la page d'accueil (index.htm)requiert une identification à partir d'une DB. Le formulaire d'identification génère une ID problème de mise à jour de base de données [ par rildspael ] Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc ORACLE&PHP [ par terminaboul ] Bonjour,Je suis a la recherche d'un site ou d'une doc en français bien évidament pouvant m'aider sur les problèmes que je rencontre avec ma base ORACL ORACLE&PHP [ par terminaboul ] Bonjour,Je suis a la recherche d'un site ou d'une doc en français bien évidament pouvant m'aider sur les problèmes que je rencontre avec ma base ORACL


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales