Mailinglisten-Archive |
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