Fonction récursive ? compter dans les catégories

Signaler
Messages postés
3
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
-
Messages postés
3
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
-
Hello tous !


j'ai un petit soucis qui va vous faire sourire... mais pour moi c'est super compliqué, héhé !


Voila j'ai des catégories adr_categories : id - parent - nom

et j'ai des établissements adr_etablissements : id - categorie - ...


mon soucis c'est que le niveau de sous catégories est "illimité" avec
mon systeme.. vu qu'on peut construire une arborescence via les id et
les parents.


Maintenant j'aimerais pouvoir faire une requete mysql qui me permette
de compter pour chaque catégorie combien il y a d'établissements
directement dans la catégories (ca c pas un soucis) mais aussi dans ses
sous catégories (la je coince...). Le but étant de pouvoir afficher
entre parenthèse le nombre d'établissement disponibles et que si il n'y
a pas d'établissement... je n'affiche pas ma catégorie...


Est-ce que quelqu'un a une idée comment je peux faire ca ?

De la doc ? quelques choses pour que je puisse avancer sur mon petit projet :-) ?


Je vous remercie beaucoup d'avance pour votre aide


Xavier83

www.xavier.bertschy.name

4 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Le plus simple est d'avoir deux champs dans ta table :
- id_categorie
- id_parent

L'id de la catégorie te permet de savoir dans quelle grande catégorie se situe un enregistrement.
L'id parent te permet de savoir quelle est la catégorie parente de l'enregistrement.

C'est plutôt facile à mettre en place, et pas facile de se tromper...
Quand tu insères une catégorie fille d'une autre, il te suffit de lui donner le même id_parent que sa mère. Sauf si la mère n'a pas de mère elle même, alors l'id parent est l'id de cet enregistrement. Euh... C'est clair... ?
Messages postés
3
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007

Mais j'ai deja dans ma table catégorie ce deux champs : adr_categories : id - parent - nom
Moi je cherche maintenant a résolver ca en php pour afficher le nombre d'établissement il y a pas catégories pour avoir un affichage du type :

- restaurants (24)
    - asiatique (20)
    - fast food (4)

Tu vois mon soucis ?

Xavier83
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Bonjour,

Si la colonne categorie de la table adr_etablissement correspond à l'id de la table adr_categorie tu peux resoudre ton probleme par cet ordre SQL :

SELECT COUNT(adr_etablissement.id),adr_categorie.nom FROM adr_etablissement,adr_categorie WHERE adr_etablissement.categorie = adr_categorie.id GROUP BY adr_categorie.id

Tu récupéreras pour chaque ligne le nom de la categorie et le nombre d'établissement correspondant.

Bonne Prog
Messages postés
3
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007

Hello merci pr ta réponse.
Avec ton exemple je trouve le nombre d'établissement directement dans la catégorie.
Mais compte-il aussi dans les sous catégories ?

Car l'idee est que si dans restaurants, il doit afficher l'addition des etablissement directement dans restaurants, et dans les sous catégories , sous sous catégories, etc....

Xavier