deglingo Posté 30 Mars 2004 Posté 30 Mars 2004 (modifié) Bonjour !!! Je voudrais permettre à un utilisateur de chercher un terme dans une table entiere. Dans mon cas, il s'agit d'une base de données sur les materiaux metalliques. j'ai une table "Normes" qui contient plusieurs colonnes comme norme_afnor, norme_afnor2 ...etc je sais faire une requete pour chercher un terme dans une colonne, mais comment faire une recherche dans toute la table (car on ne sait pas à l'avance quelle norme rentre l'utilisateur dans le champ texte) d'avance merci Modifié 30 Mars 2004 par deglingo
-ZN- Posté 30 Mars 2004 Posté 30 Mars 2004 Hello, ton explication n'est pas tres claire ... as-tu essaye avec les jointures? Peux tu donner un peu plus d'infos sur la structure de ta base?
deglingo Posté 30 Mars 2004 Auteur Posté 30 Mars 2004 je viens de me relire et c'est vrai que je suis pas tres clair en fait, j'ai crée une table "Normes" dans cette table, j'ai 10 colonnes : - id_mat (num du materiau) - ref_EN_NF - norme_EN_NF - ref EN - EN_symb - EN_num - AFNOR - AFNOR2 - ASTM_AISI - ASTM_UNS je veux mettre un petit moteur de recherche pour cette table. Un utilisateur mettra dans le champ de recherche une norme (sans preciser si c'est une norme EN/ND ou AFNOR...) et il aura comme resultat le nom du matériau qui a cette norme (qui se trouve dans une autre table) et d'autres infos. Le probleme c'est qu'il faut chercher la norme dans les 8 colonnes de normes, car je le repete, on ne sait pas quelle type de norme l'utilisateur va rentrer dans le formulaire de recherche. si vous voulez d'autres details, n'hesitez pas !
-ZN- Posté 30 Mars 2004 Posté 30 Mars 2004 heu ... select nomDeTonMateriau from taTable where (codeNormeSaisi=norme1 OR codeNormeSaisi=norme2 OR codeNormeSaisi=norme3 ...) ?
deglingo Posté 30 Mars 2004 Auteur Posté 30 Mars 2004 en fait, la requete me permettrait d'eviter de taper 8 requetes du style SELECT * FROM Normes WHERE ref_EN_NF like '%".$recherche."%' "; SELECT * FROM Normes WHERE AFNOR like '%".$recherche."%' "; SELECT * FROM Normes WHERE AFNOR2 like '%".$recherche."%' "; (etc...) pour connaitre la categorie de la norme recherchée ainsi que le numero du materiau qui correspond...
deglingo Posté 30 Mars 2004 Auteur Posté 30 Mars 2004 ex : si la table Norme est comme ca : id | norme1 | norme2 | norme3 1 | AAA1 | BBB1 | VVV1 2 | AAA2 | BBB2 | VVV2 3 | AAA3 | BBB3 | VVV3 l'utilisateur a trouvé sur un site quelconque une norme... il veut savoir à quoi ca correspond... donc il cherche BBB3 par ex. le resultat voulu, c'est de lui dire que cette norme est une norme de categorie 2 et que le materiau correspondant est le materiau 3 (qui correspond au nickel par ex)
-ZN- Posté 30 Mars 2004 Posté 30 Mars 2004 Et la structure de l'autre table, correspondant aux materiaux?
deglingo Posté 30 Mars 2004 Auteur Posté 30 Mars 2004 table materiaux : id_mat | nom | sous_famille | famille 1 | AAA1 | sf1 | fam1 2 | AAA2 | sf1 | fam1 3 | AAA3 | sf2 | fam1
-ZN- Posté 30 Mars 2004 Posté 30 Mars 2004 Y'a un truc pas clair dans la structure de ta base ... T'as pas de clef importee (ou etrangere) de la table norme dans la table materiaux? Heu ... ton materiau est associe a une ou plusieurs normes non? ou a une seule? quelle est l'association entre les deux tables (cardinalites)? Y'a p'tet un probleme dans la conception de ta base ...
deglingo Posté 30 Mars 2004 Auteur Posté 30 Mars 2004 un materiau a plusieurs normes, on le voit dans la table Normes : id | norme1 | norme2 | norme3 1 | AAA1 | BBB1 | VVV1 2 | AAA2 | BBB2 | VVV2 3 | AAA3 | BBB3 | VVV3 ex : le materiau 2 a 3 normes : AAA2, BBB2 et VVV2 Pour la liaison entre la table "Normes" et la table "Materiaux", on a Norme.id qui correspond à Materiaux.id_mat en fait, toutes les tables sont reliées via le numero "id"(une dizaine de tables en tout)
Anonymus Posté 30 Mars 2004 Posté 30 Mars 2004 Si, pour chaque matériau, tu as Norme.id = materiau.id, alors pourquoi tu n'as pas mis tous tes renseignements dans la meme table ?Comment fais tu, si le materiau n° 4 et le matériau n°5 ont les memes normes ? Tu fais une ligne normes pour chaque matériau ? Anonymus.
deglingo Posté 31 Mars 2004 Auteur Posté 31 Mars 2004 Si, pour chaque matériau, tu as Norme.id = materiau.id, alors pourquoi tu n'as pas mis tous tes renseignements dans la meme table ? pour un soucis de clarté.... sinon, j'aurais une table avec environ 80 ou 100 colonnes.... dur dur donc j'ai divisé tout ca en categories, normes physiques, chimiques, mecaniques.... Comment fais tu, si le materiau n° 4 et le matériau n°5 ont les memes normes ? Tu fais une ligne normes pour chaque matériau ? ils ont jamais les memes normes. c'est pour ca que j'ai fait une structure simple, j'avais pas envie de m'embeter avec les clé etrangeres ...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant