Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z wyświetleniem drzewa
Forum PHP.pl > Forum > Przedszkole
pawelgdz
Witam, ponieważ jeszcze nigdy nie było mi to potrzebne więc nie brałem się za to, mam do wykonania drzewiaste menu. Niestety dostałem już gotową bazę z danymi dlatego nie mam za bardzo pola manipulacji. Zrobiłem wyświetlanie drzewa aczkolwiek chciałbym teraz z tego drzewa zrobić rozwijane menu i nie wiem za bardzo jak teraz pogrupować wybrane struktury drzewa w divy które chcę poukrywać. Poniżej zamieszczam strukturę bazy oraz kod, który wyświetla drzewo w całości.

Tabela kategorie
  1. `kategorie` (`categories_id`, `categories_image`, `parent_id`, `sort_order`)


Tabela kategorie_nazwy
  1. `kategorie_nazwy` (`categories_id`, `language_id`, `categories_name`)



A poniżej skrypt który wyświetli wszystko w całości i działa dobrze, tyle że nie wiem jak pogrupować wyniki ... aby każdy pdlinkować i daną grupę dać w osobnego div'a

  1. <?php
  2.  
  3.  
  4.  
  5. function childcat($id,$name) {
  6.  
  7. $query = "SELECT kategorie.categories_id as cid, kategorie.parent_id as pid, kategorie_nazwy.categories_name as cname FROM kategorie join kategorie_nazwy on kategorie.categories_id=kategorie_nazwy.categories_id WHERE kategorie.parent_id='$id' and kategorie_nazwy.language_id=4 order by sort_order ASC";
  8.  
  9. $result = @mysql_query($query) or die ("Table doesn't exists!");
  10.  
  11. while($row = mysql_fetch_array($result)){
  12.  
  13. $oddziel = $oddziel."&nbsp;";
  14.  
  15. echo "<div id=\"mitemin\">&nbsp;&nbsp;<a href=# id=\"mitemlink\">$row[cname]</a></div>";
  16.  
  17. $id = $row['cid'];
  18.  
  19. $name = $row['cname'];
  20.  
  21. childcat($id,$name);
  22.  
  23. }
  24.  
  25. }
  26.  
  27. $query = "SELECT kategorie.categories_id as cid, kategorie_nazwy.categories_name as cname FROM kategorie join kategorie_nazwy on kategorie.categories_id=kategorie_nazwy.categories_id WHERE kategorie.parent_id='$id' and kategorie_nazwy.language_id=4 order by sort_order ASC";
  28. $result = @mysql_query($query) or die ("Table doesn't exists!");
  29.  
  30. while($row = mysql_fetch_array($result)){
  31.  
  32. echo "<div id=\"mitem\"><a href=# id=\"mitemlink\">$row[cname]</a></div>";
  33.  
  34. $name = $row['cname'];
  35.  
  36. $id = $row['cid'];
  37.  
  38. childcat($id,$name);
  39.  
  40. }
  41.  
  42.  
  43. ?>


Proszę o wskazówki. Pozdrawiam
Pilsener
Wywal ten kod czym prędzej i poczytaj o tym:
http://blog.mwojcik.pl/2008/02/17/drzewa-k...-php-metoda-ip/
Drzewo pobiera się jednym zapytaniem a wyświetla funkcją rekurencyjną, korzystając z ul+li a nie divów. Funkcje nie są po to, by zastąpić include, a zapytanie do bazy może się nie wykonać z innych przyczyn niż "table not exists", zamiast echo radzę używać zmiennych a parametry tej instrukcji podawać w '' a nie w "".
pawelgdz
drodzy koledzy walcze z tymi kategoriami cały dzień...

pomimo tego niestety nic mi z tego nie wychodzi

może ma ktoś przykład działającego menu z podziałem na takie kategorie gdzie po kliknięciu rozwija się następna podkategoria ... ?


dla zainteresowanych świetne rozwiązanie ... bynajmniej działa.
Drzewo kategorii + JS
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.