Problème d'interrogation de deux tables d'une bdd bibliographie - SQL/NoSQL - Programmation
Marsh Posté le 11-05-2007 à 13:58:11
Tu devrais faire des requêtes séparées : une si le champ auteur du formulaire est renseigné, une si c'est le champ titre et une si c'est le champ domaine. Comme ca lors de la recherche il n'est pas nécessaire de tout renseigner.
Marsh Posté le 11-05-2007 à 15:40:35
Ta structure me parait mauvaise.
Ta table 'Domaines' ne devrait pas stocker le lien entre le domaine et l'ouvrage. C'est le rôle d'une 3ème table, ça.
Tu verras que ça devient de suite plus facile.
Marsh Posté le 28-04-2007 à 17:40:29
Attention : novice inside
Salut !
Je dois faire une base mysql pour une bibliographie et je pensais faire deux tables:
1. Table "Bibliographie" avec les champs "Auteur", "Titre", "Editeur", "Annee" et "idBiblio" (clé)
2. Table "Domaines" avec les champs "Histoire", "Sociologie", "Histoire de l'art" etc. qui peuvent avoir une valeur 0 ou 1. Plus un champ "idDomaine" (clé) et le champ idBiblio qui permettra de relier les deux tables.
Quand j'enregistre un livre dans la base, je souhaite indiquer tout pour la table 1 et dans la table 2 donner une valeur "1" aux domaines que le livre concerne.
Dans un formulaire, un internaute pourra ensuite faire une recherche par Auteur, Titre et le domaine qui l'intéresse (liste déroulante).
Voici le début de la requête:
SELECT * FROM Bibliographie,Domaines WHERE Bibliographie.idBiblio=Domaines.idBiblio
AND `Auteur` LIKE '$name%'
AND `Titre` LIKE '$titel%'
AND (???)
voilà que je ne sais pas comment continuer. Comment indiquer que si dans la liste déroulante a été choisie "Histoire" (valeur importé par la variable '$selection'), il faut sélectionner toutes les ouvrages dont le champ "Histoire" de la table "Domaines" a comme valeur un "1" ? Peut on faire ça, ou autre chose, plus simple ?
Message édité par 1cat le 28-04-2007 à 17:42:07