Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z wyświetleniem drzewa
pawelgdz
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 30.01.2006

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


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 "".
Go to the top of the page
+Quote Post
pawelgdz
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 30.01.2006

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


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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.09.2025 - 12:10