SQL recherche sur plusieurs tables

Fermé
Anselme - 24 déc. 2007 à 00:52
 anselme - 26 déc. 2007 à 14:36
Bonsoir à tous,

Avant de commencer ce message brut d'informaticien, je voudrais souhaiter à tout les

lecteurs potentiels un Joyeux Noel. Moi je le fete à Budapest cette année.
Bon maintenant venons en au fait:
Je suis en train de coder un site en PHP lié du sql via MYSQL.

Mon problème est le suivant.

J'ai des produits. Ces produit sont définis dans la table produit avec pour faire simple leur

nom et leur id.
A ces objets sont assignés des caractéristiques. Comme j'ai beaucoup de caracterisitiques

et queje veux pouvori en rajouter quand bon me semble , j'ai crée donc deux tables

supplémenataires.
La premiere table nommons la caracteristique serre à mettre les noms de caracteristiques et

certaines propriétés par rapport à ces derniere (comme par exemple je veux que cette

caracteerisitque soit un textarea ou un select etc..)

Maintenant chaque produit peut avoir des caracteristiques differentes.
Pour exemple j'ai un velo (table produit) ce velo a des roues et des freins (tables

caracteristiques) mais pour j'ai un autre velo mais avec des roues et des freins de marques

differentes.
Pour me simplifier la tete j'ai crée une troisièeme table qui sert de rentrer les values des

caractéristiques du produit .
Me suivez -vous ?
Petit recapitulatif en schematisant.
Je rentre un produit dans ma base un vélo .
Ce vélo je le rentre dans ma table produit.
Ce velo a des caracterisitques .
Je liste les caracteristiques que doit avoir un vélo à partir de ma table caracteristiques.
Je rentre les values de mes caracteristiques qui seront insérée dans la table

value_caractéristiques

Ma table value_caractéristiques à donc comme champ
id (jusqu'a la pas trop difficile)
id du produit
id de la cara
value

Tout roulait comme je voulais sur mon site web pour lister mes objets leurs differents carac

et leurs differents valeurs de cara, jusqu'au jour (aujourd'hui) ou je décide d'installerun

moteur de recherche pour permettre à l'utlisateur de choisir en fonction des

caracterisitques disponible la valeur des caractèristiques.
Et la c'est le drame.

C'est à ce moment la que vous intervenez si ca vous dit. (Ca m'aiderait beaucoup ceci dit :) )

Donc le moteur de recherche à plusieurs text area pour plusieurs caracteristiques

disponibles.

Je pensais donc à une réquete du genre

SELECT DISTINCT (p.produitid) FROM poduit AS p INNER JOIN value_caractéristiques AS c

WHERE p.produitid = c.produitid AND c.caracteristiques='46' AND c.value=''définie par

l'utilsateur"

Celle ci marche , le probleme c'est que ici un champ seulement peut etre satisfait.
Lorsque l'utilsateur veut un deuxieme critère ma requete donnerait


SELECT DISTINCT (p.produitid) FROM poduit AS p INNER JOIN value_caractéristiques AS c

WHERE p.produitid = c.produitid AND c.caracteristiques='46' AND c.value=''définie par

l'utilsateur" c.caracteristiques='47' AND c.value=''encore définie par l'utilsateur"
et la ca marche plus du tout car c'est on revient sur l'entrée.

J'espere que vous aurez compris mon casse tete qui peut etre pour vous ne sera pas du tout

un casse tete.

Dans l'attente de vos réponse, je vous souhaite une bonne nuit ou un bon debut de

journée,*

Bien à vous,

Anselme.

PS: Si mes explications sont plus que confuses n'hesitez pas à me faire detailler encore. :)

3 réponses

Personne n'as pas une petit idée ? Cela m'aiderait beaucoup ;)
0
dodo78 Messages postés 181 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 17 juin 2009 16
26 déc. 2007 à 12:01
bonjour,

je ne vois pas pourquoi tu entre des caracteristiques ( je suppose que tu exploite avec une base de donnée ) pourquoi faire plusieurs tables alor que les caracteristiques tu peus les entré dans une seul tables ? tu n'a pas de limite de champ dans une base de donnée,apres pour faire ta requete tu peu le faire dans plusieurs balise Php ,me comprend tu ?

<?php

ta premiere selection

>?


<?php

ta deuxieme selection

>?


<?php

tatroisieme selection

>?

enfin je sais pas,c'est idée ...
0
Salut,


merci pour ta réponse, c'est tres gentil de t'etre penché sur mon problème.
En fait ,oui bien sur j'exploite une base de données.
EN fait je n'ai pas mis les caracteristiques dans les meme tables , car je veux pouvoir rajouter des caracterisitques quand bon me semble.
Chaque produit peut avoir des caracteristiques différentes et la valeur des caracteristiques egalement differente.

Exemple: Je vends un vélo qui a des freins de type Mx et un packaging en carton, mais egalement un ours en peluche qui est en laine , et qui a un packagin en carton.
Je veux que l'utilisateur qui cherche tout ce qui a un packaging en carton tombe sur les deux .
Le prob de mettrre tout les caracterisitques dans la meme table , c'st que a chaque fois que je veux que je veux en tant qu'administrateur rajouter une nouvelle caracterisiques je dosi modifier mon code et ma table.

...
Merci en totu cas,

Anselme
0