KaiCrow
08-02-2003, 18:51
Hallo,
das Problem "Nested Sets" wurde hier zwar schon ein paarmal diskutiert, aber leider habe ich für mein Problem noch keine Losung gefunden.
Tabellenstruktur "tbl_menu"
node_id menu lft rgt
---------------------------------------------
1 Shop 1 24
2 Alkoholika 2 19
3 Alkoholfrei 20 23
4 Biere 3 8
5 Schnaps 9 18
6 hochprozentig 10 15
7 LowProzent 16 17
8 Grasovska 11 12
9 Korn 13 14
10 Landskron 4 5
11 Radeberger 6 7
12 O-Saft 21 22
-----------------------------------------------------------
-----------------------------------------------------------
Ausgabe des gesamten Baumes über die Query
"SELECT node1.node_id,node1.lft,node1.rgt,node1.beschreibung,COUNT(*) AS level
FROM tbl_menu AS node1,tbl_menu AS node2
WHERE node1.lft BETWEEN node2.lft AND node2.rgt GROUP BY node1.LFT"
nodeID lft rgt level menupunkt
-----------------------------------------------------------
1 1 24 1 Shop
2 2 19 2 |---Alkoholika
4 3 8 3 |---|---Biere
10 4 5 4 |---|---|---Landskron
11 6 7 4 |---|---|---Radeberger
5 9 18 3 |---|---Schnaps
6 10 15 4 |---|---|---hochprozentig
8 11 12 5 |---|---|---|---Grasovska
9 13 14 5 |---|---|---|---Korn
7 16 17 4 |---|---|---LowProzent
3 20 23 2 |---Alkoholfrei
12 21 22 3 |---|---O-Saft
-----------------------------------------------------------
-----------------------------------------------------------
Die Ausgabe, die ich erreichen will:
Beispiel:
Bei Klick auf Schnaps soll das nächste Level unter Schnaps ausgegeben werden.
Außerdem soll man alle "Brüder" [Biere] und den "Vater" [Alkoholika] von Schnaps, sowie die "Brüder
des Vaters" [Alkoholfrei] angezeigt bekommen.
nodeID lft rgt level menupunkt
-----------------------------------------------------------
1 1 24 1 Shop
2 2 19 2 |---Alkoholika
4 3 8 3 |---|---Biere
5 9 18 3 |---|---Schnaps
6 10 15 4 |---|---|---hochprozentig
7 16 17 4 |---|---|---LowProzent
3 20 23 2 |---Alkoholfrei
-----------------------------------------------------------
-----------------------------------------------------------
Habe schon einiges probiert, komme aber nie auf das gewünschte Ergebnis!
...wäre schön, wenn mir jemand weiterhelfen könnte.
Ich hoffe das Beispiel ist anschaulich genug!
:beer:
Ciao, KaiCrow
das Problem "Nested Sets" wurde hier zwar schon ein paarmal diskutiert, aber leider habe ich für mein Problem noch keine Losung gefunden.
Tabellenstruktur "tbl_menu"
node_id menu lft rgt
---------------------------------------------
1 Shop 1 24
2 Alkoholika 2 19
3 Alkoholfrei 20 23
4 Biere 3 8
5 Schnaps 9 18
6 hochprozentig 10 15
7 LowProzent 16 17
8 Grasovska 11 12
9 Korn 13 14
10 Landskron 4 5
11 Radeberger 6 7
12 O-Saft 21 22
-----------------------------------------------------------
-----------------------------------------------------------
Ausgabe des gesamten Baumes über die Query
"SELECT node1.node_id,node1.lft,node1.rgt,node1.beschreibung,COUNT(*) AS level
FROM tbl_menu AS node1,tbl_menu AS node2
WHERE node1.lft BETWEEN node2.lft AND node2.rgt GROUP BY node1.LFT"
nodeID lft rgt level menupunkt
-----------------------------------------------------------
1 1 24 1 Shop
2 2 19 2 |---Alkoholika
4 3 8 3 |---|---Biere
10 4 5 4 |---|---|---Landskron
11 6 7 4 |---|---|---Radeberger
5 9 18 3 |---|---Schnaps
6 10 15 4 |---|---|---hochprozentig
8 11 12 5 |---|---|---|---Grasovska
9 13 14 5 |---|---|---|---Korn
7 16 17 4 |---|---|---LowProzent
3 20 23 2 |---Alkoholfrei
12 21 22 3 |---|---O-Saft
-----------------------------------------------------------
-----------------------------------------------------------
Die Ausgabe, die ich erreichen will:
Beispiel:
Bei Klick auf Schnaps soll das nächste Level unter Schnaps ausgegeben werden.
Außerdem soll man alle "Brüder" [Biere] und den "Vater" [Alkoholika] von Schnaps, sowie die "Brüder
des Vaters" [Alkoholfrei] angezeigt bekommen.
nodeID lft rgt level menupunkt
-----------------------------------------------------------
1 1 24 1 Shop
2 2 19 2 |---Alkoholika
4 3 8 3 |---|---Biere
5 9 18 3 |---|---Schnaps
6 10 15 4 |---|---|---hochprozentig
7 16 17 4 |---|---|---LowProzent
3 20 23 2 |---Alkoholfrei
-----------------------------------------------------------
-----------------------------------------------------------
Habe schon einiges probiert, komme aber nie auf das gewünschte Ergebnis!
...wäre schön, wenn mir jemand weiterhelfen könnte.
Ich hoffe das Beispiel ist anschaulich genug!
:beer:
Ciao, KaiCrow
