Tach.
drucker
- canon
- eposn
monitore- samsung
- sony
jetzt möchte ich, das NUR "drucker" und "monitore" angezeigt werden. blos wie gehe ich da vor?
Du möchtest alle Elemente einer bestimmten Ebene auswählen? In welcher Ebene sich ein Knoten befindet, kannst Du (in MySQL) folgendermaßen berechnen:
SELECT
COUNT(*) AS ebene,
n1.id,
n1.name
FROM
deineTabelle AS n1,
deineTabelle AS n2
WHERE
n1.links BETWEEN n2.links AND n2.rechts
GROUP BY
n1.links
Du gehst also alle vorhandenen Knoten durch, kuckst Dir deren L und R an, notierst die Knoten, deren L zwischen diesen beiden Werten liegt ... und packst aus dieser Zählung alle Knoten in eine gemeinsame Gruppe, die den gleichen Wert für L haben.
Wenn ein Knoten z. B. direktes Kind des Rootknotens ist, taucht er in der Zählung zweimal auf; einmal für "zwischen L und R des Rootknotens", ein weiteres Mal für seine eigenen L und R. Eine Ebene weiter unten taucht der Knoten dreimal auf usw. Die Größe der Gruppen (COUNT) gibt dir also die Ebene des Knotens. Der Rootknoten liegt in Ebene 1.
Den Rest bekommst Du sicher alleine hin. :)
Once is a mistake, twice is Jazz.