Peut-être une histoire de tableaux...

ptiromino Messages postés 1 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 8 décembre 2008 - 8 déc. 2008 à 16:57
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 14 déc. 2008 à 15:31
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

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
13 déc. 2008 à 15:49
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
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
14 déc. 2008 à 15:26
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-
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
14 déc. 2008 à 15:31
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 -
0
Rejoignez-nous