Peut-être une histoire de tableaux...

Signaler
Messages postés
1
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
8 décembre 2008
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Je fais appel à la communauté pour me guider un peu dans ma programmation.

J'ai 3 tables dans ma base de donnée : "categorie", "souscategorie" et "designation".
Voici des p'tits exemples, vous allez comprendre très vite.

Table "categorie" :
id : 1
nom : Cat 1

id : 2
nom Cat 2

Table "souscategorie" :
id : 1
categorie : 1
nom : Sous-cat 1-1

id : 2
categorie : 1
nom : Sous-cat 1-2

id : 3
categorie : 2
nom : Sous-cat 2-1

Table "designation"
id : 1
souscategorie : 1
nom : Design 1-1-1

id : 2
souscategorie : 3
nom : Design 2-1-1

etc... etc...

Bref, je voudrais sortir en PHP une liste sous la forme suivante (en partant de la base "designation") :

Cat 1 > Sous-Cat 1-1 > Design 1-1-1
Cat 2 > Sous-Cat 2-1 > Design 2-1-1
...

En gros, ma base fonctionne comme des dossiers et sous-dossier windows, la designation étant par exemple un fichier.
Je veux donc lister les fichiers avec les dossiers auxquels ils appartiennent... Jusque là, j'ai mon idée...
Mais bien evidemment, celà doit être rangé dans l'ordre alphabetique par catégorie, puis par sous catégorie, puis par designation...

J'attend vos réponses !
Merci !

3 réponses

Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

perso je ferais une petite classe pour contenir les informations (juste 3 variables groupées dans une classe (categorie, sous-categorie et designation), puis pour chaque élément de ta table designation tu cree un objet que tu stock dans un tableau.

Ensuite, tu peux trier ce tableau en utilisant usort: http://ch2.php.net/manual/en/function.usort.php

Voili
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Le mieux est de traiter en SQL, du genre :

SELECT categorie.nom, souscategorie.nom, designation.nom
FROM `categorie`, `souscategorie`, `designation`WHERE categorie.id souscategorie.categorie AND designation.souscategorie souscategorie.id
GROUP BY cat, s_cat, desi
ORDER BY `test01`.`cat` ASC, s_cat ASC, desi ASC

Bon, je ponds ça sans l'avoir testé, et en plus ça dépend de la structure de tes tables. Menfin je crois ne pas être loin de la solution.

Cordialement,

Kohntark-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Heu, ça plutôt :

SELECT categorie.nom, souscategorie.nom, designation.nom
FROM `categorie`, `souscategorie`, `designation`WHERE categorie.id souscategorie.categorie AND designation.souscategorie souscategorie.id
GROUP BY categorie.id, souscategorie.id, designation.id
ORDER BY `categorie.nom` ASC, souscategorie.nom ASC, designation.nom ASC

Kohntark -