[MySQL] Afficher plusieurs genre pour un film

Fermé
paul - 15 déc. 2007 à 20:56
 paul - 18 déc. 2007 à 19:18
Bonjour,

J'ai 3 tables :

film(numFilm,nomFilm)
appartenir(numGenre,numFilm)
Genre(numGenre,nomGenre)


Je voudrais afficher la liste des films qui ont plusieurs genres mais je n'y arrive pas. Pouvez-vous m'aider svp ?

Merci d'avance.

Exemple : j'ai classé Titanic le genre romance et dans le genre drame.

Je pensais faire :

SELECT nomFilm, nomGenre
FROM film, appartenir, genre
WHERE film.numFilm = appartenir.numFilm
AND appartenir.numGenre = genre.numGenre

mais j'obtiens bien sûr mon film affiché 2 fois avec ses 2 genres

Pouvez-vous m'aider svp ?
A voir également:

3 réponses

Bonsoir,

J'utilise 3 tables parce que 1 film peut appartenir à 1 ou plusieurs genre (cardinalité 1, N) et 1 genre contient plusieurs Films (cardinalité 1, N également), donc l'association au niveau physique devient une table qui prend en comme champs la concaténation des identifiants des entités Film et Genre (numFilm et numGenre).

Je ne veux pas modifier mon MCD, je suis sûr qu'il est possible de faire la requête avec les 3 tables mais je n'arrive pas à faire la requête SQL.

Je veux que le résultat soit par exemple pour mon film Titanic

nomFilm nomGenre
Titanic Romance, Drame

Je pensais à :

SELECT nomFilm, nomGenre,
FROM film, appartenir, genre
WHERE film.numFilm = appartenir.numFilm
AND appartenir.numGenre = genre.numGenre
GROUP BY film.nomFilm;

mais mysql m'affiche seulement 1 seul fois le nom du film avec son 1er genre

Peux-tu m'aider ?
0
Personne ne peut m'aider ?
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
15 déc. 2007 à 22:27
Pourquoi utilise tu 3 tables ? tu ferais bien mieu d'utiliser 1 seul table avec tout les champs .

comme sa tu auras 1 table description_film avec comme champs "id,nomFilm,genre"

SELECT *
FROM description_film
WHERE id = $id ou $_GET['id'] ou $_POST['id']

puis pour avoir plusieur genre et ben si par exemple tu rentre la description par un formulaire deroulant ( pour le champ genre ) tu fais en sorte que tu puisse dire le nombre x de genre que tu veux pour le film puis ensuite x champ de formulaire apparaitront pour le champ "genre" et pour recuperer les 2 resultat tu fais

$genre = $genre1 ."/". $genre2

$genre1 = le premier genre choisi
$genre2 = le deuxieme genre choisi
$genre = resultat final qui sera envoyer sur la bdd ex resultat : "Action / Thriller"


dis le moi si tu ne comprend pas..je n'explique pas tres bien
-1