![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, bardzo prosze o pomoc. Mam jedna tabele o nazwie schemat_dzialow a w niej 3 pola "id_dzialu", "id_dzialu_nadrzednego" i "nazwa". Wypelnilem rekordy tej tabeli zgodnie ze schematem organizacyjnym, co wyglada mniej wiecej tak:
"id" "id_dzialu_nadrzednego" "nazwa" 1 1 Zarzad 2 1 Dzial1 3 1 Dzial2 19 1 Dzial3 9 1 Dzial4 11 19 Dzial5 12 19 Dzial6 13 19 Dzial7 27 9 Dzial9 28 9 Dzial10 29 9 Dzial11 10 1 Dzial12 7 1 Dzial13 20 7 Dzial14 21 7 Dzial15 22 7 Dzial16 Taki wyglad dzialow przedstawiony w tabeli z nazwa, numerem id i id rodzica nie jest zbyt czytelny dlatego chcialbym narysowac drzewko tej tabeli. Drzewko moze byc narysowane od razu w calosci lub posiadac funkcje zwijania/rozwijania poszczegolnych galezi np znakami + i - na zasadzie np "Dzial13 (+) (-)". Dodam jeszcze ze tabela jest mala, posiada okolo 30 dzialow wiec jakies funkcje zwiekszajace wydajnosc chyba nie sa potrzebne, wystarczy prosta metoda przynajmniej tak mi sie wydaje. Jeszcze raz prosze o pomoc i z gory dziekuje, pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 3.01.2007 Skąd: Żory Ostrzeżenie: (0%) ![]() ![]() |
Witam
Proponuje dodac kolumne "level" ktora okresla stopien zagnierzdzenia. Przyklad zagnierzdzenia test 1 test 2 1 ---- test 3 2 -------test4 3 itd. Jesli chcesz wyswietlic cale drzewo to pobierasz wszystkie wiersze (sortujac po parentid jak sie nie myle) i lecisz po tablicy wynikowej foreachem. Podczas wyswietlania ustawiasz "padding-left" elementu na ("level elementu" * 20px) i wtedy dostaniesz wciecia. Nie jest tu potrzebna zadna rekurencja. Jesli bedziesz potrzebowall bardziej zaawansowanych operacji na drzewie polecam celkotree (nested set) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 12:57 |