Sorry das ich mit etwas komme was schon xmal behandelt wurde, aber ich komme obwohl ich mir alles durchgelesen habe nicht weiter. Ich hoffe hier kann mir jemand helfen, weil ich kapier nichts mehr.
Ich habe auf Grundlage von "nestedset" ein Menü erstellt
id ! name ! links ! rechts
-----------------------------------------------
1 ! Lebensmittel ! 1 ! 14
2 ! Gemüse ! 2 ! 11
4 ! Broccoli ! 3 ! 10
7 ! Gelbkohl ! 5 ! 4
6 ! Rotkohl ! 7 ! 6
5 ! Grünkohl ! 9 ! 8
3 ! Obst ! 12 ! 13
8 ! Auto ! 15 ! 20
10! Opel ! 16 ! 17
9 ! Mercedes ! 18 ! 19
. Nun möchte ich diesen in ausgeben, aber mit allen Vorläufern, so etwa:
Lebensmittel
Lebensmittel - Gemüse
Lebensmittel - Gemüse - Broccoli
Lebensmittel - Gemüse - Gelbkohl
Lebensmittel - Gemüse - Rotkohl
Lebensmittel - Obst
Auto
Auto - Opel
Auto - Opel
Bis jetzt habe ich das:
SELECT s.id, s.Name, count( * ) AS
LEVEL , (
s.rgt - s.lft -1
) /2 AS Kinder, s.lft, s.rgt
FROM NestedSet v, NestedSet s
WHERE s.lft
BETWEEN v.lft
AND v.rgt
GROUP BY s.lft
bei folgender Ausgabe:
id Name LEVEL Kinder lft rgt
1 Lebensmittel 1 9.0000 1 14
2 Gemüse 2 2.0000 2 11
5 Broccoli 3 1.0000 3 10
9 Gelbkol 4 0.0000 5 4
weiter würde ich so vorgehen, aber so bekomme ich nur das Ende der jeweiligen Liste:
$result = mysql_query($sql) or die ($sql.'<br>'.mysql_error());
while ($ausgabe = mysql_fetch_object($result))
{
echo $ausgabe->Name.'<br>';
}
Franzi