Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak Zliczyc ilosc wykonań funkcji, Wewnatrz tehrze Funkcji
Yacho
post 1.12.2005, 23:55:09
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


Problem jest nastepujacy :

Mam funkcje rekurencyjną :
  1. <?php
  2. function getCatTree($id)
  3. {
  4. $query = "SELECT cat_id FROM mod_xgallery_categories WHERE parent_id=$id";
  5. $result = mysql_query($query);
  6. while ($row = mysql_fetch_assoc($result))
  7. {
  8. //echo $row['cat_id'];
  9.  $i[] = $row['cat_id'];
  10.  
  11. }
  12. //print_r($i);
  13. if(is_array($i))
  14. {
  15.  
  16. foreach ($i as $v)
  17. {
  18. echo $v.'<br>';
  19. getCatTree($v);
  20. }
  21.  }
  22. }
  23.  
  24. getCatTree(0);
  25.  
  26. ?> 


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 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....
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ę.

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.....


--------------------
-=Yacho=-

nospor -> trzymaj sie i nie dajcie sie !
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post 2.12.2005, 00:01:39
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


A nie lepiej generowac sciezke podobnie jak system zapisuje pliki
np /katalog1/podkatalog/kolejnypodkatalog i napodstawie ilosci zaglebien robisz wciecia


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 21:36