Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tworzenie dynamicznego drzewa menu
Forum PHP.pl > Forum > PHP
Korian
Muszę stworzyć skrypt wyświetlający menu drzewiaste, ale nie wiem jak się za to zabrać.

Menu musi posiadać dowolną ilość możliwości zagnieżdzania, na przykład:



-menu1

---podmenu1

------podpodmenu1

---------podpodpodmenu1

---------podpodpodmenu2

---podmenu2

-menu2

-menu3

---podmenu1



Nazwy są głupie ale chciałem żeby było to wyraźnie widać.



Struktura menu, będzie pobierana z bazy MySQL, ale też niewiem jaką strukture powinna mieć tabela. 

Próbowałem z opisaniem menu za pomocą 3 zmiennych: id, id_menu_nadrzednego, tresc, i wyswietlać menu za pomocą pętli, ale niestety nie wyszło. Kombinowałem też z funkcjami rekurencyjnymi, ale też zbytnio pomieszałem.



Proszę o pomoc smile.gif

Nie potrzebuje kompletnego kodu php, bo to moge sam zrobić, starczy mi sama idea, lub lepiej pseudokod. Z góry dzięki.
atze_
Ja stosuje drzewka nested sets - numerowane węzły. Przede wszystkiem szybkie wyciąganie całego lub części drzewka jednym zapytaniem. Skomplikowane jest zarządzanie i tu trzeba uważać.

Poczytaj:
http://www.depesz.com/various/various-sqltrees.php
http://artykuly.zyxist.com/czytaj.php/drzewa_w_php_i_mysql
Korian
wielkie dzięki za linki winksmiley.jpg 
Nauczę się obsługi, drzewek z numerowanymi węzłami, ale to będzie kosztować mnie z dzień jeśli nie więcej ;/ A teraz będę musiał wykorzystać inny sposób, chyba pobiorę wszystkie dane z bazy (id, id nadrzędnego, name) odpowiednio je posortuje i przy pomocy pętli i warunków wygeneruje odpowiedni kod php, który będę zapisywał do pliku, dzięki temu przy każdym odświeżaniu kod będzie wczytywany z pliku a nie bazy, jedynie sama zmiana struktury menu będzie dość długo generowana, ale zmiany w menu dokonuje się dość rzadko i robi to tylko administrator więc nie powinno to stanowić problemu (tym bardziej, że będzie to rozwiązanie tymczasowe).

Co sądzicie o takim rozwiązaniu? całkowity szajs czy może być jak na rozwiązanie tymczasowe?

Tylko czy uda mi się to odpowiednio posortować ;/ chyba czeka mnie ciężka nocka.
miedzna
Zobacz to http://forum.php.pl/index.php?showtopic=96...rt=#entry484137
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.