![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 148 Pomógł: 0 Dołączył: 16.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest nastepujacy :
Mam funkcje rekurencyjną :
Pobiera ona kategorie z bazy ulozone w drzewo - znaczy kazda kategoria ma przyporzadkowany Parent - i funkcja wyswietla od przekazanego $id parenta "w dół do końca" Problem jest taki ze chcialbym wiedziec jaka jest "głębokosc" na danej kategorii aby drzewko odpowiednio ułozyc z tabulacjami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jedyne co mi sie nasuwa to : a) przed wywolaniem funkcji utworzyc sobie iterator powiedzmy $i i zwiększać jego wartość o jeden w Funkcji.... (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) pobierajac dane z bazy przy każdej kategorii pobierac pełną listę jego parentów.... Rozwiazanie a) jest fajne wydajnościowo ale troche niepraktyczne - bez zadeklarowania zmiennej przed funkcją nie mam możliwosci liczenia "głębokosci" - co w sumie tworzy dosc nieprzejrzystą konstrkcję. (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) rozwiazanie dosc przyjemne bo wygodne w użyciu ale odpada pod wzgledem wydajnosciowym..... Wiec ma ktos moze pomysł jak rozwiązać taki problem bez użycia iteratorów poza funkcją ? a jesli musze użyc jakiegos zapytania SQL to niech to beda jakies 3 a nie po jednym zapytaniu per kategoria..... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Rozwiazaniem ktore ja stosuje takich przypadkach jest bajer $i;
Pozatym zamiast deklarowac cos na zewn bo w funkcji korzystac z tablicy $GLOBALS. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 09:22 |