Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]ścieżka kategorii
Skovron
post 7.07.2008, 12:50:45
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 5.05.2004
Skąd: Warszawa

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


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


--------------------
We are born without love and we die without hope ... why? Because we are the Fallen Generation
Go to the top of the page
+Quote Post

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: 14.08.2025 - 06:27