Problème d'interrogation de deux tables d'une bdd bibliographie

Problème d'interrogation de deux tables d'une bdd bibliographie - SQL/NoSQL - Programmation

Marsh Posté le 28-04-2007 à 17:40:29    

Attention : novice inside  :D  
 
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 ?
 
 :jap:


Message édité par 1cat le 28-04-2007 à 17:42:07
Reply

Marsh Posté le 28-04-2007 à 17:40:29   

Reply

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.

Reply

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.


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed