Afficher le nom de toute les catégories pour un livre

Signaler
Messages postés
3
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
22 mai 2012
-
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
-
Bonjour.

C'est surement ultra basique mais je n'y arrive pas.

J'ai deux tables.

Table1
id_categorie ( 1 , 2 , 3 ... )
nom_categorie ( avec des trucs genres Science Fiction, Historique, Policier )

Table2
Id_livre
nom_livre
categorie_1 ( 1 )
categorie_2 ( 4 )
categorie_3 ( 8 )


Je souhaite afficher les livres et leurs catégories .. ( plusieurs cat par livre )

Nom_Livre - Nom_categorie_1 - Nom_categorie_2

Mais je sais pas comment faire puisque dans Table2 j'ai un chiffre qui est lié a Table1 ..

Merci

2 réponses

Messages postés
74
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
11 décembre 2012
3
Bonjour à vous,

Avez vous essayer ceci?

<?php
$requete = "SELECT nom_livre, 
           (SELECT nom_categorie  FROM livre ,categorie  WHERE livre.categorie_1 = categorie.id_categorie) AS categorie_1,
           (SELECT nom_categorie  FROM livre ,categorie  WHERE livre.categorie_2 = categorie.id_categorie) AS categorie_2,
           (SELECT nom_categorie  FROM livre ,categorie  WHERE livre.categorie_3 = categorie.id_categorie) AS categorie_3 
           FROM livre";
?>

Dans mon cas table1 renommée livre et table2 renommée categorie
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Déjà ta abse de données est mal structurée, ce n'est pas une bonne idée d'avoir mis des champs categorie_X dans ta table de livres. Je te montre vite fait comment tu devrais faire :

Et une petite requête pour obtenir ce que tu cherches:
SELECT livre.nom AS livre, categorie.nom AS categorie
     FROM livre
     INNER JOIN livre_has_categorie
     ON livre.id = livre_has_categorie.livre_id
          INNER JOIN categorie
          ON livre_has_categorie.categorie_id = categorie.id


On remarqueras que pour les livres disposant de catégories multiples on a le livre qui viens une fois pour chaque catégorie. En fonction de ce que tu cherches à faire ce n'est pas un problème. Pour un peu plus d'infos sur el fonctionnement basique des jointures, regarde ceci : Des bases de données relationnelles et multivaluées.