Aller au contenu

comment faire une recherche sur toute une table ?


deglingo

Sujets conseillés

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é par deglingo
Lien vers le commentaire
Partager sur d’autres sites

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?

Lien vers le commentaire
Partager sur d’autres sites

je viens de me relire et c'est vrai que je suis pas tres clair :D

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 ! ;)

Lien vers le commentaire
Partager sur d’autres sites

heu ...

select nomDeTonMateriau from taTable where (codeNormeSaisi=norme1 OR codeNormeSaisi=norme2 OR codeNormeSaisi=norme3 ...)

?

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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 ...

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 :P

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 ...

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...