| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo, beim ParentID- oder Hirarchie-Prinzip hilft nur Rekursion. Innerhalb einer Ebene kannst du dann ohne Probleme ein ORDER BY Reihenfolge einbauen, wenn du die aktuellen Knoten lädst.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Benutzer Registriert seit: 05.11.2008
Beiträge: 35
![]() | Also, dr.e, dein Tipp mit rekursiver Programmierung bringt mich auch schon auf eine Idee. Bisher happert es nur ein wenig an der Umsetzung. Ich habe es ja schon vorher geschafft, eine beliebig verschachtelbare Navigation zu erzeugen. Diese hatte nur einen Nachteil: unter den ersten Menüpunkt habe ich einen Unterpunkt einsortiert, der in der Datenbank den letzten Datensatz darstellt. Ich habe einfach drei Arrays genommen (Ebenen, Unterpunkte in den Ebenen und bereits angezeigte Unterpunkte in Ebene) und bei jedem Datensatz geprueft, ob der Wert in der Spalte Ebene dem in $ebene[0] entspricht. Hat sich ein neuer Knoten eröffnet, habe ich einfach mit array_unshift die neue ID an den Anfang von $ebenen gesetzt, beim Schließen habe ich das Array gekippt, den damit letzten Eintrag per array_pop entfernt und das array wieder umgedreht. Dadurch war $ebenen[0] nun das, was zuvor $ebenen[1] war. Soweit so gut, aber dann kam er am Ende der Datensätze an und damit war Schluss. Gab ja keine Datensätze mehr. An diesem Ansatz habe ich aber festgehalten. Ich habe es etwas anders gemacht: ich habe mir die IDs der Navipunkte in der ersten Ebene in ein Array gespeichert, danach eine for-Schleife mit $i=0; $i <= $a; $i++ (wobei $a count ($punkte)-1 entspricht). Dann habe ich Punkt für Punkt ein neues Query ausgeführt, welches den Menüpunkt ermittelt. War dieser in der gleichen Ebene, habe ich ihn mit unset aus dem $punkte-Array entfernt. Nachdem er dann beim letzten Datensatz angekommen war, habe ich $i wieder auf 0 gesetzt, die Anzahl der verbleibenden IDs in die Variable $a geschrieben und das Array mit den IDs neu geschrieben (damit die Schlüssel wieder 0,1,2,3,... und nicht 0,1,3,4,... sind). Dummerweise ist er nicht mehr in die vorherige Ebene gesprungen und dadurch ist eine Endlosschleife entstanden. Wäre es möglich, dass ich diesen Ansatz weiter verfolge? Zwar ist diese Technik nicht gerade die profesionellste, aber da das nur ein kleines Projekt für mich ist, macht das wohl nicht viel aus und solange es funktioniert, soll es ruhig so sein. Es geht nur um etwas mehr als 30 Menüpunkte. Danke für alle bisherigen Antworten |
| | |
| | |
| Benutzer Registriert seit: 05.11.2008
Beiträge: 35
![]() | Ok, der Tipp von dr.e war mir jetzt nicht nur eine große Hilfe - er war sogar die Lösung meines Problems Ich habe mir mehrere Methoden in meine Klasse geschrieben. So läuft das ganze jetzt ab: Die Hauptmethode Navigation () ermittelt alle Einträge auf der ersten Ebene. Danach ermittelt es zu jedem Eintrag alle Untereinträge durch die Funktion Unterpunkte (). Diese legt ein Array mit den IDs der Einträge an und ruft sich selber auf, falls dieser Punkt selber noch Untereinträge hat. Dieses Array wird in einer weiteren rekursiven Funktion UnterpunkteAnzeigen () verarbeitet. Jetzt funktioniert es endlich! Und ich habe mich so oft darüber aufgeregt, dass es nicht funktioniert. Nur dieses eine Wort namens Rekursion hat mir gefehlt. Also nochmal vielen vielen Dank nach München an dr.e Hoffentlich funktioniert das jetzt auch wirklich. Nicht dass da jetzt Fälle sind, in denen es zu Problemen kommt. Wobei ich den Fall "Eintrag ID 1 enthält ID 32" gleich mal ausprobiert habe. Daran ist es ja bisher immer gescheitert. Jetzt muss ich nur noch meinen Navigationseditor so erweitern, dass ich den Baum editieren kann. Bisher habe ich das nur mit PMA gemacht^^ |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Und auf zirkuläre Angaben achten!
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Navigation mit Active-Link | Rezeptfrei | PHP Tipps 2008 | 5 | 26.11.2008 13:45 |
| Problem mit PHP Navigation | hagene | PHP Tipps 2008 | 4 | 09.10.2008 23:33 |
| Kontaktformular mit Spamschutz und include Navigation? | chicco4u | PHP Tipps 2008 | 1 | 11.08.2008 09:52 |
| Navigation fixen | Desert | PHP Tipps 2008 | 0 | 12.05.2008 17:00 |
| Probs mit Layout für Navigation mit Grafiken/Hintergrund | HTML, Usability und Barrierefreiheit | 3 | 08.02.2006 19:56 | |
| Navigation | snatch-ic | PHP Tipps 2007 | 4 | 08.01.2006 12:11 |
| Navigation | PHP Tipps 2007 | 17 | 04.11.2005 20:07 | |
| Änderung der datenbank gestützten Navigation | PHP Tipps 2005-2 | 1 | 26.09.2005 20:34 | |
| Probleme mit der Navigation | Pimbolie1979 | HTML, Usability und Barrierefreiheit | 3 | 19.05.2005 15:45 |
| Navigation mittels PHP anpassen | PHP Tipps 2005 | 8 | 27.04.2005 14:35 | |
| Navigation | PHP Tipps 2005 | 18 | 11.04.2005 16:16 | |
| Navigation | tikal | PHP Tipps 2004-2 | 3 | 03.12.2004 15:28 |
| div layer navigation | HTML, Usability und Barrierefreiheit | 1 | 18.11.2004 15:44 | |
| Mit Templates Navigation erstellen? (welches Templatesyste?) | zwelch | PHP Tipps 2004-2 | 5 | 18.11.2004 15:14 |
| schnieke navigation | PHP Tipps 2004 | 8 | 26.10.2004 16:39 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| hierarchische navigation, php hierarchische navigation, html hierarchische navigation, hierarchische navigationsstruktur, navigation php reihenfolge, hierarchische menüs datenbank, php navigation 4 ebenen, http://www.php.de/datenbanken/50571-erledigt-hierarchische-navigation.html, hierarchisches menü php, order navigation php.de, layered navigation unset, reihenfolge navigation datenbank, php hierarchischer navigationsbaum, sortierung html hierarchie, hierarchische navigation html, was heißt hierarchischen navigationsmenü, hierarchische navigation php, php array rekursiv in navi einbauen, php rekursive navigation, html hierarchische |