Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1283 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  probleme de filtre pour une sous-categorie de categorie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de filtre pour une sous-categorie de categorie

n°1975908
db-h
Posté le 22-03-2010 à 12:06:31  profilanswer
 

bonjour à tous
 
Je voudrait sa voir si quelqu'un a déjà eu le mm problème que moi, pour commencer je présente mon espace de travaille :
 
J'ai 4 table : - produits
                 - marques
                 - categories
                 - sous_categories
 
Elles sont comme sa :
 
produits : - id_produits                 .marques : - id_marque                 .categories : - id_categories                 .sous_categories : - id_sous_categories
              - cle_marque                .              - nom                                           - nom                                                       - cle_categorie ( car categoreie a ss-cat sont dans des liste sur la pae d'ajout et les liste sont liée)
              - cle_categorie                                                                                                                                              - nom
              - model  
              - marque  
 
Maintenant le probleme :
 
Je souhaite afficher un produits specifique d'une sous categories alors je tape ceci :
 
SELECT marque.nom, produit.model,  
FROM produit, marque, categories, sous_categories
WHERE cle_marque=id_marque AND produit.cle_categorie=id_categorie AND id_sous_categorie=4 AND id_categorie=12
 
Mais a se moment là j'obtien  tous les produit de la categorie 12 et ils ont tous "id_sous_categorie=4" alors que sur ma page ajout produit un seul a eu 4 pour l'id_sous_categorie
 
Quelqu'un a une piste passe moi je bloque lol
 
 
db-h aka Newbiiz

mood
Publicité
Posté le 22-03-2010 à 12:06:31  profilanswer
 

n°1975916
db-h
Posté le 22-03-2010 à 12:14:39  profilanswer
 

je pense qu'il faudrait que je lie sous_categories à produits,... mais omment ds phpMyadmin?

n°1975974
db-h
Posté le 22-03-2010 à 14:40:54  profilanswer
 

personne ne voit?

n°1975987
rufo
Pas me confondre avec Lycos!
Posté le 22-03-2010 à 15:02:08  profilanswer
 

J'ai déjà fait ce genre de classification, moi, j'ai fait une seule table pour les catégories :
Catégories :
- ID,
- Nom
- autres champs...
- ID parent   (qui vaut NULL dans le cas d'une catégorie de premier niveau)
 
Inconvénient de cette modélisation, pour certaines requêtes, faut en lancer plusieurs et faire du récursif. Tu peux regarder dans mon soft icare (cf ma signature) les tables "KeyWords" et "CmpKeyWords" sont modélisées de cette manière.
 
Edit : ce que tu veux faire s'appelle modéliser une arborescence. 2 bon sites à ce sujet :
http://dev.mysql.com/tech-resource [...] -data.html
http://sqlpro.developpez.com/cours/arborescence/


Message édité par rufo le 22-03-2010 à 15:03:31

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1976021
db-h
Posté le 22-03-2010 à 16:17:25  profilanswer
 

super je vais regarder sa tout de suite

n°1976048
hutarios
Posté le 22-03-2010 à 16:54:47  profilanswer
 

pour éviter de faire du récursif et de lancer plusieurs requetes pour la méthode de Rufo tu peut utiliser la représentation intervallaire pour l'arborescence de tes catégories
 
cf : http://sqlpro.developpez.com/cours/arborescence/

n°1976110
db-h
Posté le 22-03-2010 à 19:55:06  profilanswer
 

merci les gars il va me falloir un petit tps pour ingurgiter sa donc je m'y met sa a l'aire des bonne piste ;)

n°1976169
discmat
Posté le 23-03-2010 à 08:21:58  profilanswer
 

En restant simple, je pense que tu peux garder tes deux tables : catégorie et sous-catégorie, ca évitera de se prendre la tête plus tard. ça dépend du niveau après...
 
Tu changes dans la table produit : "cle_categorie" => "cle_ss_categorie" (met à jour les clefs étrangères).
 
Maintenant voici la nouveau requête à saisir pour afficher tous les produits de la sous catégorie 4:  

Code :
  1. SELECT marque.nom, produit.model, 
  2. FROM produit, marque, categories, sous_categories
  3. WHERE cle_marque=id_marque AND produit.cle_ss_categorie=id_ss_categorie AND id_sous_categorie=4;


 
Si tu veut tous les produits de la catégorie 6:  

Code :
  1. SELECT marque.nom, produit.model, 
  2. FROM produit, marque, categories, sous_categories
  3. WHERE cle_marque=id_marque AND produit.cle_ss_categorie=id_ss_categorie AND cle_categorie=id_categorie and id_categorie=6;


Peut être mettre des alias au passage.

n°1976183
rufo
Pas me confondre avec Lycos!
Posté le 23-03-2010 à 09:26:46  profilanswer
 

hutarios a écrit :

pour éviter de faire du récursif et de lancer plusieurs requetes pour la méthode de Rufo tu peut utiliser la représentation intervallaire pour l'arborescence de tes catégories
 
cf : http://sqlpro.developpez.com/cours/arborescence/


 
c'est le 2ième lien que j'ai donné. T'as pas du lire mon post :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1976185
rufo
Pas me confondre avec Lycos!
Posté le 23-03-2010 à 09:28:35  profilanswer
 

discmat a écrit :

En restant simple, je pense que tu peux garder tes deux tables : catégorie et sous-catégorie, ca évitera de se prendre la tête plus tard. ça dépend du niveau après...
 
Tu changes dans la table produit : "cle_categorie" => "cle_ss_categorie" (met à jour les clefs étrangères).
 
Maintenant voici la nouveau requête à saisir pour afficher tous les produits de la sous catégorie 4:  

Code :
  1. SELECT marque.nom, produit.model, 
  2. FROM produit, marque, categories, sous_categories
  3. WHERE cle_marque=id_marque AND produit.cle_ss_categorie=id_ss_categorie AND id_sous_categorie=4;


 
Si tu veut tous les produits de la catégorie 6:  

Code :
  1. SELECT marque.nom, produit.model, 
  2. FROM produit, marque, categories, sous_categories
  3. WHERE cle_marque=id_marque AND produit.cle_ss_categorie=id_ss_categorie AND cle_categorie=id_categorie and id_categorie=6;


Peut être mettre des alias au passage.


 
Sauf qu'avec cette structure à 2 tables, il se limite à une arborescence à 2 niveaux pour sa classification. Avec les autres solutions, pas de limite (ou presque) => bien plus souple donc.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 23-03-2010 à 09:28:35  profilanswer
 

n°1976604
discmat
Posté le 24-03-2010 à 08:53:42  profilanswer
 

Tout à fait d'accord avec toi.
En gros si ton système est fait pour une bibliothèque : multitude de catégories et sous-catégories, il vaut mieux choisir le récursif.
 
Maintenant si c'est pour un exo "pourris" qui gère une boulangerie, que la BD est déjà faite et qu'on demande juste la requête d'affichage, 1 sous catégorie suffit.
 
Par contre en cas réel : soit prudent en manipulant la base de données : tes changements pourront engendrer des erreurs sur les applications développées par d'autres personnes. Mieux vaut se contenter de chercher la bonne requête d'affichage sans toucher le reste...


Message édité par discmat le 24-03-2010 à 09:06:38
n°1976632
hutarios
Posté le 24-03-2010 à 10:09:30  profilanswer
 

rufo a écrit :

 

c'est le 2ième lien que j'ai donné. T'as pas du lire mon post :/

 

oups, j'avais pas fait attention aux urls...  :jap:  :jap:  miles excuses


Message édité par hutarios le 25-03-2010 à 11:54:50
n°1977178
db-h
Posté le 25-03-2010 à 11:30:51  profilanswer
 

Merci pour le débat les gars sa m'a aider.
Effectivement l'affichage en répétition, le plus simple sa a été l'ajout d'une cle_ss_categorie et aussi se qui m'a fait perdre du temps c'est que dans mon formulaire d'ajout des produit la liste de sélection des ss-categorie été relier a cette même table au lieu de la table produits.
 
Top cool se forum j'espère pourvoir quitter mon stade de nwebii et pourvoir avoir des discutions constructive comme vous ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  probleme de filtre pour une sous-categorie de categorie

 

Sujets relatifs
Problème de compteurProblème de largueur
Probléme menu dans un iframeProbléme daccé a une BDD sous HSQL
[Résolu][SQL/ACCESS] Problème COUNT / GROUP BYprobleme avec marquee et w3c
Mac et windows probleme code.Problème select max mysql
problème avec insertion 
Plus de sujets relatifs à : probleme de filtre pour une sous-categorie de categorie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR