Forum Doku Wiki Blog

Forumsarchiv 2007, Oktober
nestet sets - nur eltern auslesen

archivierte Beiträge lesen

  1. (PHP) nestet sets - nur eltern auslesen von tma, 24. 10. 2007, 19:43

nestet sets - nur eltern auslesen

Der folgende Beitrag wurde am 24. 10. 2007, 19:43 Uhr von tma veröffentlicht.

hallo,

ich stehe auf dem schlauch!

nested sets geht soweit. nur bekomme ich es nicht hin, ein menü darzustellen.
ich schaffe es nur, alles zu listen (ist ja kein problem...)

beispiel menü

drucker
 - canon
 - eposn
monitore
 - samsung
 - sony

jetzt möchte ich, das NUR "drucker" und "monitore" angezeigt werden. blos wie gehe ich da vor?

der aufbau der tabelle ist typisch: ID | links | rechts | name

kann mir da jemand helfen?

gruß, tom

nestet sets - nur eltern auslesen

Der folgende Beitrag wurde am 24. 10. 2007, 20:53 Uhr von Blaubart veröffentlicht.

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.

nestet sets - nur eltern auslesen

Der folgende Beitrag wurde am 24. 10. 2007, 21:04 Uhr von globe veröffentlicht.

n'abend,

> nested sets geht soweit. nur bekomme ich es nicht hin, ein menü darzustellen.

ich fand den Artikel Nested Sets - Verschachtelte Bäume mit MySQL von Arne Klempert damals recht hilfreich.

weiterhin schönen abend...
--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.

sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4