![]() Mailinglisten-Archive |
Lars Brinkmann wrote: >Hi PHPler, > > ich frage mich, ob es m�glich ist, die Ausgabe eines > Nested-Set-Modells mit Hilfe der SQL-Anweisung automatisch > einzur�cken, ohne dass ich daf�r eine PHP-Funktion schreiben muss. > > Mit Count(*) kann ich ja den Level eines Elementes ermitteln. Aber > wie kann ich nun zum Beispiel vor die Bezeichnung die Anzahl von > Count(*) an Leerzeichen voranstellen? Auch die Sortierung bereitet > mir noch Kopfzerbrechen. Wenn ich nach der Bezeichnung alphabetisch > sortieren lasse, passt nat�rlich die Reihenfolge der Knoten nicht > mehr. Kann man das vielleicht alles mit einer Query-Anweisung erledigen? > > So soll es aussehen: > > Punkt 1 > Punkt 1.1 > Punkt 1.2 > Punkt 2 > > > > Hallo, ich arbeite gerade an einem �hnlichen Problem. Das alphabetische Sortieren macht wirklich Stress -_-, und bisher fehlt mir dazu auch noch eine L�sung. F�r die Darstellung gibt es aber 2 M�glichkeiten: 1. Die einfachere: Die setzt einfach soviele "spaces" wie Level vor den String! 2. Die Ausgabe mit HTML-Liste: mit einer HTML Liste bekommst du auch noch die Nummerierung hin.. das einzige Manko: Wann �ffne ich die Liste und wann schliese ich sie. Dieses Problem habe ich mit einer Function gel�st.. Grunds�tzlich wird bei jeden Eintrag aus der DB ein <li> ge�ffnet. Bei ersten Eintrag wird ein <ul> (Listen anfangen) und beim letzten ein </ul> (Listen schliesen) gesetzt! Jetzt wird es aber schwierigen, denn wir wollen ja auch eine HTML4- XHTML- konforme Liste haben: Also m�ssen wir alle <li> Tags auch wieder schliesen! Daf�r ben�tigen wir den Level des Datensatzes, den wir mit den vorhergegangen Element vergleichen. Der Level kann > , < oder = sein. Wenn der Level = ist dann schliesen wir einfach nur </li> wenn der Level > ist m�ssen wir eine neue Liste mit <ul> �ffnen und ein Listen elment mit <li> anlegen. Ist der Leven kleiner errechnen wir uns um wieviel der Level kleiner ist und dementsprechend viele </li> und </ul> m�ssen wir dann auch setzen. Mit einer kleinen Erweiterung der Funktion kannst du auch die Z�hlung Erstellung, soweit du kein HTML nutzen kannst. Bei moderneren Browser werden die Elemnte selbst gez�hlt und mit CSS2 kannst du sie auch richtig sch�n formatieren! Ich hoffe ich konnte dir ein paar Denkanst�sse geben die dir helfen das Problem zu l�sen. Mit freundlichen Gr��en Andy
php::bar PHP Wiki - Listenarchive