[NON resolu] affichage récursif du contenu d'un groupe d'elements pouvant conten

cs_vpxavier Messages postés 2 Date d'inscription vendredi 28 juillet 2006 Statut Membre Dernière intervention 17 octobre 2006 - 17 oct. 2006 à 15:38
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 17 oct. 2006 à 16:14
Bonjour à tous,
j'ai vraiment besoin d'aide... si vous pouviez m'aider, ce serait vraiment super...

Je voudrais afficher le contenu d'une table (ZONE_ELEMENT). La table a 4 champs: ID, ZONENAME,NAME_ITEM,TYPE.
Dans
ZONENAME, j'ai le nom d'un groupe; dans NAME_ITEM, le nom d'un ELEMENT,
dans TYPE, je précise si l'élément est un groupe ( le champs contient
alors Z) ou un élément (E).

ex: le groupe 1 contient OBJET1; le groupe 2 contient OBJET2 ET groupe 1.

Ma table contient alors:

ID| ZONENAME | NAME_ITEM | TYPE
--|-------------|-------------|-----
1 | GROUPE1 | OBJET1 | E
2 | GROUPE2 | GROUPE1 | Z
3 | GROUPE2 | OBJET2 | E

Qui pourrait m'aider? Le but est d'afficher tous les éléments contenus dans un groupe (et dans les groupes qu'il contient). Dans l'exemple, je dois afficher: OBJET1 OBJET2...

Si vous pouvez me sauver la vie... merci d'avance

1 réponse

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
17 oct. 2006 à 16:14
Hello,

j'aurais plutôt fait un truc dans ce genre (non testé là hein, mais dans ce genre ça devrait marcher, et tu auras plus de profondeur possible) :

GROUPS
GRP_ID
GRP_NAME
GRP-PARENT

OBJECTS
OBJ_ID
OBJ_NAME

LNK_GRP_OBJ
GRP_ID
OBJ_ID

GROUPS :
1, GROUPE1, NULL
2, GROUPE2, 1

OBJECTS :
1, OBJET1
2, OBJET2

LNK_GRP_OBJ :
1, 1
2, 2

SELECT
    GRP.GRP_NAME,
    OBJ.OBJ_NAME
FROM
    GROUPS GRP
        LEFT JOIN LNK_GRP_OBJ LNK ON LNK.GRP_ID = GRP.GRP_ID
        LEFT JOIN OBJECTS OBJ ON OBJ.OBJ_ID = LNK.OBJ_ID
0
Rejoignez-nous