Witam,
Mam coś takiego:
  1. public function category_list()
  2. {
  3. if($this->patches)
  4. {
  5. $explode_list=explode("_",$this->pathes);
  6. array_unique($explode_list);
  7. }
  8.  
  9. $deep=count($explode_list);
  10. if(!$explode_list)
  11. {
  12. $query_select=mysql_query("SELECT categories.categories_id,categories.parent_id,categories_description.categories_
    name from categories,categories_description where categories.categories_id=categories_description.categories_id and categories.parent_id='0' order by categories.pos"
    );
  13.  
  14. while($r=mysql_fetch_array($query_select))
  15. {
  16. $this->categories_name[$r[0]]="<li class=formatowanie_poziomu_$jakis_poziom><a href=index.php?path=$r[0]>$r[2]</a></li>";
  17.  
  18.  
  19.  
  20. }
  21. }
  22. else
  23. {
  24.  
  25. reset($explode_list);
  26.  
  27.  
  28.  
  29. }
  30.  
  31. }
  32.  


I problem się zaczyna, jak to wyświetlić, kiedy jest jakaś ścieżka np. 5_14 - czyli pod kategorię 5 są pod kategorie, w tym podkategorie 14 pod którą też są podkategorie. $this->patches to sciezka kategorii.

Próbowałem za pomocą funkcji rekurencyjnej, ale mam problem w jaki sposób w niej sprawdzić, w którym miejscu należy zrobić przejście do kolejnego poziomu kategorii. Zależy mi, żeby wszystko działo się w klasie i dało się pobrać $this->categories_name, tak jak się da pobrać go gdy nie ma ścieżki kategorii (brak rozwidleń).

Jakieś wskazówki, pomysły? W OSie to nie jest zrobione za pomocą obiektu, tylko za pomocą tablic wielowymiarowych - w dodatku w niezbyt czytelny sposób.