Afficher le nom de toute les catégories pour un livre
cs_nwh
Messages postés2Date d'inscriptionvendredi 16 mars 2007StatutMembreDernière intervention22 mai 2012
-
7 mai 2012 à 23:19
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 2013
-
9 mai 2012 à 19:14
Bonjour.
C'est surement ultra basique mais je n'y arrive pas.
deutch36
Messages postés73Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention11 décembre 20123 9 mai 2012 à 10:08
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
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 9 mai 2012 à 19:14
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.