phpbar.de logo

Mailinglisten-Archive

[php] Nested Sets

[php] Nested Sets

Jörn Grube jg at team-spandau.de
Fre Nov 9 15:34:20 CET 2007


Volker Goebbels schrieb:
> Hallo Jörn,
> 
> Das hab ich, steht ja auch so in dem genannten Artikel. Damit weiß ich
> aber nur, ob die Zeile, die gerade dran ist, ein Ast, ein Zweig oder gar
> nur ein Blatt ist. Damit weiß ich dann aber noch nicht, wie ich in der
> Ausgabe rauskriege, wo ich das jeweilige < ul > bzw. < /ul > schreiben
> muss. Denn speziell letzteres darf ja erst kommen, wenn alle Blätter
> durch sind, dann alle Zweige durch sind. Das Problem liegt also nicht in
> der DB-Abfrage, sondern wie ich das Ergebnis per PHP ausgebe. Und das
> auch noch mit korrektem HTML-Code. Aber ich denk, ich hab da eine Idee,
> mal sehen, ob das klappt :)
> 
> mögliches Vorgehen:
> 1. Result Set in ein (flat) Array schreiben
> 2. Array-Walker drüber laufen lassen, der sich den "last level" (globale Variable oder besser Klasenattribut) merkt.
>    Wenn der merkt, daß aktueller Level > last Level ist: <ul> aufmachen.
>    Wenn aktueller Level < last Level ist: </ul> zumachen.
>    Aktuellen Eintrag per <li>...</li> bearbeiten.
> 
> Den Walker und seine Status-Variablen würde ich in eine Klasse packen. Globale Variablen stinken ;)
> 
> Das Vorgehen insgesamt ist so ähnlich wie bei einem expat-XML-Parser, da es sich in beiden Fällen sozusagen um einen statusbehafteten Stream-Parser handelt.

Interessant, aber das überfordert mich nun doch um einiges, zumindest 
momentan. Trotzdem werd ich natürlich auch darüber "meditieren". Danke 
erstmal.

Liebe Grüße aus Berlin Jörn

php::bar PHP Wiki   -   Listenarchive