Witam, chciałbym się zapytać czy jest może jakaś lepsza metoda rozwiązania poniższego problemu, na nic innego nie wpadłem, a chodzi mi o możliwość zagnieżdżania kategorii w nieskończoność i zrobienie ścieżki gdzie aktualnie znajduje się użytkownik, więc stworzyłem tabele categories, z polami catid,name,parent. Metoda powszechnie znana, id kategorii umieszczamy w polu 'parent' i tak w nieskończoność. Mój skrypcik działa szybko i sprawnie, po kliknięciu np. na id=6 w pętli szuka wszystkich jego gałęzi aż dojdzie do 0 a potem wypisuje na ekran ścieżkę od tylu. Może ktoś ma pomysł na bardziej wydajną metodę lub znajdzie jakieś błędy. Z góry dzięki za odpowiedzi smile.gif

  1. <?php
  2. // po połączeniu z baza danych tworzymy tablice kategorii
  3.  
  4. while($kat = mysql_fetch_array($zapytanie)) {
  5.  $category = $kat['catid'];
  6.  $tab[$category]=array($kat['catid'], $kat['parent'], "{$kat['name']}");
  7. }
  8.  
  9.  
  10.  
  11. echo "<a href=\"kategorie.php?id=0\">Index</a> / ";
  12.  
  13.  
  14. $catid = $id;
  15. $ile=1;
  16.  
  17. for($i=0; $i<$ile; $i++) {
  18. $cat = $tab[$catid][1];
  19. $sciezka[$i]['id_cat'] = $tab[$catid][0];
  20. $sciezka[$i]['name'] = $tab[$catid][2];
  21.  if($cat != 0) {
  22. $ile++;
  23. $catid = $cat;
  24.  }
  25. }
  26.  
  27. $ilosc = count($sciezka);
  28. if($id <> 0) {
  29.  for($j=$ilosc-1; $j>=0; $j--) {
  30. echo "<a href=\"_kategorie.php?id={$sciezka[$j]['id_cat']}\">{$sciezka[$j]['name']}</a>"; echo " / ";
  31.  }
  32. }
  33. ?>