Autor |
Nachricht |
Schneemann
Threadersteller
Dabei seit: 15.01.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 27.04.2008 23:46
Titel HTML-Liste mit Nested Sets erstellen |
|
|
Hallo,
ich habe jetzt 4 Stunden gesucht nach einer Hilfe wie ich aus Nested Sets eine Ausgabe mit <ul> und <li> hinbekomme aber außer der selben Fragen nie eine Antwort gefunden.
Wer kann bei diesem Problem weiterhelfen oder hat gar die Lösung parat?
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
|
|
|
|
Anzeige
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 28.04.2008 08:30
Titel
|
|
|
Wahrscheinlich hakt es daran, aus dem zurückgelieferten Resultset eine rekursive Baumstruktur beliebiger Tiefe zu basteln.
Leider wissen wir nicht, mit welchem Rdbs und welcher Programmiersprache du arbeitest. Ich gehe einfach mal von PHP5 aus.
Du bekommst ja eine geordnete Liste von Tupeln zurück (wenn du alles richtig gemacht hast), die die Nutzlast und die Hierarchietiefe beinhaltet (level). Idealerweise auch noch die Info, ob ein Tupel ein Blatt oder einen Knoten repräsentiert (Blatt = Knoten ohne Kinder, Knoten = Blatt mit Kindern). Siehe (wie Rob schon sagte): http://www.klempert.de/nested_sets/artikel/
Diese Liste musst du nun Iterativ behandeln und während des Durchlaufs rekursiv deine Listenstruktur herausrendern. Was aber nicht besonders effizient ist, da du zwar nun einen dollen Algorithmus hast, um eine ungeordnete Liste zu produzieren, aber für andere Anwendungsfälle (geordnete Liste, n-Dim-Array, etc) jeweils das kleiche Konstrukt brauchst, welches lediglich um die Art der Ausgabe erweitert werden muss.
Am besten schreibst du dir direkt eine Klasse, die das Iterator Muster, genauer den Rekursiven Iterator (eine Erweiterung des klassischen Iterator-Patterns) implementiert. Die Schnittstelle hierzu findest du in der SPL, die heißt dann RecursiveIterator: http://www.php.net/~helly/php/ext/spl/interfaceRecursiveIterator.html
Schau dir bei Gelegenheit vielleicht auch mal Propel an, das ist ein Orm-Framework, das dir die leidige Arbeit abnimmt (Lerneffekt dann aber natürlich =0 )
Zuletzt bearbeitet von bacon am Mo 28.04.2008 08:33, insgesamt 1-mal bearbeitet
|
|
|
|
|
Glas
Dabei seit: 24.05.2003
Ort: Bremen
Alter: 41
Geschlecht:
|
Verfasst Mo 28.04.2008 09:35
Titel
|
|
|
Vorrausgesetzt Du arbeitest mit MySQL, findest Du hier noch einen anständigen Artikel bzgl. der Verwaltung von hierachischen Daten. Vielleicht hilfts Dir bei Deinem Problem
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
edit: Netter Link zum RecursiveIterator bacon. Bedankt
Zuletzt bearbeitet von Glas am Mo 28.04.2008 09:37, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 28.04.2008 10:01
Titel
|
|
|
Biddeschön. Deiner ist aber auch nicht schlecht^^.
|
|
|
|
|
Schneemann
Threadersteller
Dabei seit: 15.01.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 28.04.2008 23:37
Titel
|
|
|
Ich arbeite mit PHP und MySQL. Mein Nested Set basiert genau auf dem Beispiel von Arne Klempert. Leider zeigt er keinen Weg wie man eine <ul><li> Liste generiert. Auch würde ich gerne nicht die PEAR-Klasse nutzen sondern es selbst verstehen können statt mich durch eine extrem umfangreiche Klasse zu wurschteln, bei der ich am Ende wieder nur Bahnhof verstehe.
Es fehlt mir nicht an Grundlagen von PHP, aber um tiefer in das Thema zu kommen sind diese High End KLassen zu kompliziert zum Verstehen.
Hat keiner eine Lösung oder einen Link auf ein Tutorial wo genau das gemacht wird? Ich stoße bei Googl eimmer nur auf diese Frage aber nie auf Antworten.
Zuletzt bearbeitet von Schneemann am Mo 28.04.2008 23:44, insgesamt 1-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Di 29.04.2008 00:06
Titel
|
|
|
Warum nimmst du dir denn nicht das Klempert-Script als Vorlage?
Hast du dir die Online-Demo angeschaut? Okay, da wird keine Liste generiert, sondern da kommen Selects zum Einsatz. Aber das Prinzip der Darstellung ist ja eigentlich das Gleiche...
|
|
|
|
|
Schneemann
Threadersteller
Dabei seit: 15.01.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Di 29.04.2008 00:50
Titel
|
|
|
Nein, das Prinzip ist nicht das gleiche, da er nur pro Level die Leerzeichen davor erhöht. Ich will aber eine semantisch korrekte <ul><li>.
Sein "fertiges" Script baut auf die PEAR-Klasse, also auch nicht so toll.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP/MySQL] Dynamisches Menü mit Nested Sets
HTML/CSS - Problem mit Liste
Liste in html mit tabs ertsellen
ol ul li / Historie mit Jahreszahlen als HTML Liste
[HTML] Abstände zwischen Bildern (Liste)
[Hilfe] Formatierung von HTML-Liste/Menü
|
|