![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Chciałem sobie napisać skrypt, który rekurencyjnie będzie pobierał wszystkie rekordy z bazy i samodzielnie tworzył menu o zagłębieniu nieograniczonym. Wszystko działa jak powinno, lecz nie mogę obliczyć poprawnie zagłębienia. Tzn, chciałem dodać do kazdej tablicy pod indeksem lvl kolejna cyfrę, która odpowiadałaby zagłębieniu. Ale okazuje się, że dwa pierwsze zgłebienia zawsze maja taką samą cyfrę. Kolejne juz inkrementują normalnie, ale poza dwoma pierwszymi.
Tutaj jest funkcja:
A przykładowy wynik wygląda tak:
Mógłbym prosić o jakąś podpowiedź? Jestem świadomy tego, że popełniłem jakis błąd, ale od wczoraj nie mogę go znaleść. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ps:
Y, czemu dzieciom przypisujesz poniżej ten sam level co rodzicowi? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ale po co w ogole dzieciom ustawiasz lvl?
Przecieć level dziecka niejako załatwia ci ta linijka: $cats[$i]['lvl'] = $lvl; Przecież dzieci przez to przechodza. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Fakt, masz rację. Teraz chciałbym pójść o krok dalej, i zamiast robić tablicę wielowymiarową, zrobić jednowymiarową, ale żeby zachować tą kolejność i poziom zagłębienia lvl.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem źle to robisz, rezasz niepotrzebnie bazę a kod jest nieczytelny i skomplikowany.
1. Użyj jednego zapytania które zrzuci wszystko za jednym razem 2. Użyj tablic dwuwymiarowej, gdzie będzie tylko ID rodzica i ID elementu 3. Teraz mając taką tablicę należy użyć rekurencji, by ją wyświetlić Tu masz więcej info: http://blog.mwojcik.pl/2008/02/17/drzewa-k...-php-metoda-ip/ |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po zagłębieniu się w temacie popieram @up
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 02:59 |