PHP MySql : sous famille

copoloc
Invité n'ayant pas de compte PHPfrance

22 sept. 2011, 17:44

Bonjour à tous,

J'ai réaliser un site internet grace à pas mal de tuto sur internet !

Mais je ne parvient pas à trouver une solution à mon probleme ! Je m'explique :

Dans ma base j'ai les CATEGORIES ex FLEUR- ARBRES... etc

Les SOUS CATERGORIE :
si on clique sur FLEUR on affiche les sous categorie >>> exemple si on clique sur FLEUR on obtient rose, coquelicot... etc.

Puis il y a les SOUS-SOUS CATEGORIE >>>>exemple si on clique ROSE on obtient toute les ROSES ROUGES, ROSES violette..ETC.
Hors j'ai crée aussi des consos : comme les gants, lunettes, pelles... etc.

SEULEMENT voila, certain conso doivent être attribués à plusieurs fleurs et ça je n'y arrive pas !
si dans la colonne FLEUR, je mets ROSE : on voit bien dans la page les consos rataché à ROSE.
Mais comment faire pour les attribuer les memes à d'autre famille ??

d'avance merci
J'ai mis dans la colonne ROSE COQUELICOT et la ça ne marche pas !

Eléphant du PHP | 85 Messages

22 sept. 2011, 21:46

Il faut le définir dans tes tables sql.

un table avec les "outils", une tables avec les "fleurs", une table avec les associations.

copoloc
Invité n'ayant pas de compte PHPfrance

23 sept. 2011, 09:01

J'ai fait une table pour chaque catégorie !

Sauf celle avec les associations ! et je vois pas comment faire !
Un exemple ?

ViPHP
ViPHP | 2577 Messages

23 sept. 2011, 09:35

Une table (MERE,FILLE,TYPE). Le type ne te sert que si tu veux séparer les liens de type consommable et catégorie.

Pour des raisons de facilité, tu peux mettre les MERE à 0 pour indiquer que l'on ne peux remonter ou pour commencer une navigation. Chaque affichage de liste se fait à partir d'un identifiant en se basant sur cette table en commençant par l'identifiant 0. Pour chaque élément d'une liste, tu peux mettre 1 liens par mère enregistrée.

copoloc
Invité n'ayant pas de compte PHPfrance

23 sept. 2011, 14:40

#-o euh... j'ai rien compris ! je suis un GROS débutant ! je ne comprends pas le liens ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 sept. 2011, 15:30

salut,

ce que Mazarini indique c'est la relation entre les catégories (donc fleurs => rose => rose rouge) la catégorie de "base" (ici fleurs) est l'ancêtre (catégorie mère ou grand-mère suivant la profondeur des catégories).
lorsque l'on fait cela sur une seul table, on indique qu'un ancêtre n'a pas d'ancêtre :) sinon on indique qu'elle ligne est l'ancêtre

exemple de table
id int <= clef primaire de la table
idparent <= correspond a la clef primaire de la catégorie supérieures (si cette ligne correspond a rose, c'est l'id de fleur) et s'il s'agit "d'un ancêtre", donc une catégorie "racine" cette valeur vaut zéro. Pourquoi zéro ? parce que généralement la numération des clef commence à 1 donc si l’ancêtre est zéro on est sur qu'il n'y a pas de recherche d’ancêtre a faire ;)
etc etc

a priori ça c'est déjà fait, par contre pour ce qui est des "conso" associées la il va falloir deux tables en plus pour gérer les relations.
une table "conso"
par exemple
idconso clef primaire
nom varchar
description text

et une table qui fait la liaison entre la table conso et la table des produits
exemple
id
idconso
idproduit

donc au final ton application devrait avoir, au moins, 4 tables,
une table catégorie (clef primaire,ancetre, nom, descriptions)
une table produit (clef primaire, categorie,nom, description) catégorie étant la valeur de la clef primaire correspondant a la catégorie dans la table "catégorie)
une table consomable (clef primaire, nom, description)
une table produitconso (clef primaire, consommable, produit), consommable et produit correspondent au clef primaire des tables des consommables et des produits.

pourquoi une telle architecture ? simplement pour te permettre d'avoir plusieurs consommable pour un produit et d'utiliser un même consommable pour plusieurs produit (j'imagine que le p'tit pot de présentation peux être le même pour une rose blanche ou rouge ;) )

avec ça tu peux facilement retrouver les consos associés a chaque produit a l'aide d'une jointure.
plus d'info sur SQL => http://sqlpro.developpez.com :)

@+
Il en faut peu pour être heureux ......

copoloc
Invité n'ayant pas de compte PHPfrance

23 sept. 2011, 18:30

Mille mercis d'avoir prix autant de temps ! :D
Je vais donc me pencher sur tes explications !!!

Encore merci à tous, je vous tiens informé...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 sept. 2011, 18:48

heu de rien :mrgreen:
Il en faut peu pour être heureux ......