So... und ein neues wunderschönes Thema hab ich hier... Nested Sets.
4 Wundervolle Tutorials und eine menge Probieren haben mich an den Rand des Wahnsinns getrieben.
Folgende Tabellenstruktur ist vorhanden.
page_id page_root page_l page_r page_title
1 1 1 28 Hauptkategorie
2 1 2 7 Kleidung
3 1 3 4 Hosen
4 1 5 6 Schuhe
5 1 8 21 Autos
6 1 9 10 Mercedes
7 1 11 16 VW
8 1 12 13 Bentley
9 1 14 15 Skoda
10 1 17 20 BMW
11 1 22 27 Schmuck
12 1 23 24 Uhren
13 1 25 26 Ketten
14 1 18 19 Mini
Nun möchte ich gerne, dass die Kategorien vernünftig aufgerufen werden.
Das habe ich bisher so gemacht:
Das klappt auch wunderbar. Es liefert mir:
-Kleidung
-Autos
-Schmuck
Nun.... Wenn ich einen Link anklicke, dann habe ich eine andere Abfrage:
Nur leider werden die Unterkategorien alleine angezeigt. Ohne Hauptkategorien.
Ich hätte nämlich gerne, dass folgedes Ergebnis kommt:
"+" = Hat noch weitere Unterkategorien
+ Kleidung
+ Autos
--- + BMW
--- Mercedes
--- VW
usw.
+ Schmuck
Habt Ihr eine Idee?
4 Wundervolle Tutorials und eine menge Probieren haben mich an den Rand des Wahnsinns getrieben.
Folgende Tabellenstruktur ist vorhanden.
page_id page_root page_l page_r page_title
1 1 1 28 Hauptkategorie
2 1 2 7 Kleidung
3 1 3 4 Hosen
4 1 5 6 Schuhe
5 1 8 21 Autos
6 1 9 10 Mercedes
7 1 11 16 VW
8 1 12 13 Bentley
9 1 14 15 Skoda
10 1 17 20 BMW
11 1 22 27 Schmuck
12 1 23 24 Uhren
13 1 25 26 Ketten
14 1 18 19 Mini
Nun möchte ich gerne, dass die Kategorien vernünftig aufgerufen werden.
Das habe ich bisher so gemacht:
PHP-Code:
$this->_query = "SELECT pages1.page_l AS L,
pages1.page_r AS R,
pages1.page_title AS Baum ,
COUNT(*) AS level
FROM
pages AS pages1,
pages AS pages2
WHERE pages1.page_l BETWEEN
pages2.page_l AND
pages2.page_r
GROUP BY
pages1.page_l
HAVING LEVEL=2;";
-Kleidung
-Autos
-Schmuck
Nun.... Wenn ich einen Link anklicke, dann habe ich eine andere Abfrage:
PHP-Code:
$this->_query = 'SELECT pages1.page_l AS L, pages1.page_r AS R,
CONCAT(REPEAT( \' \', COUNT( * ) ) ,
pages1.page_title ) AS Baum,
COUNT( * ) AS '
. ' LEVEL '
. ' FROM pages AS pages1, pages AS pages2'
. ' WHERE pages1.page_l'
. ' BETWEEN pages2.page_l AND pages2.page_r AND pages2.page_l'
. " BETWEEN $left AND $right "
. ' GROUP BY pages1.page_l';
Ich hätte nämlich gerne, dass folgedes Ergebnis kommt:
"+" = Hat noch weitere Unterkategorien
+ Kleidung
+ Autos
--- + BMW
--- Mercedes
--- VW
usw.
+ Schmuck
Habt Ihr eine Idee?
Kommentar