Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP+MYSQL]drzewko kategorii - menu - budujące listę wypunktowaną <UL><LI>
-mkdes-
post
Post #1





Goście







Przeszukałem już chyba cały internet i nic.
Szukam przykładu kodu dla budowania drzewka menu kategorii (które tworzy drzewko listy wypunktowanej <UL><LI>).
Kategorie pobieram z bazy (id, id_parent, nazwa).

Sam nieudolnie coś stworzyłem ale nie domyka mi znaczników <ul>.
Inwencja i rozum mi się skończył.
Proszę o pomoc, jakiś namiary, cokolwiek.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
JaRoPHP
post
Post #2





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(mkdes @ 1.06.2007, 16:36:36 ) *
Sam nieudolnie coś stworzyłem ale nie domyka mi znaczników <ul>.
Najszybciej uzyskasz pomoc, jak pokażesz kawałek kodu. Wtedy użytkownicy będą mogli pokazać ci, gdzie wkradł się błąd.

Cytat(mkdes @ 1.06.2007, 16:36:36 ) *
Inwencja i rozum mi się skończył.
Mam nadzieję, że nie jest aż tak źle tongue.gif


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
-mkdes-
post
Post #3





Goście







DZIAŁA
Ogromną wadą tego rozwiązania jest mnożenie zapytań do bazy.
Może ktoś ma pomysł jak przerobić to na tablice, coby jednym zapytaniem pobrać wszystkie kategorie.
  1. <?php
  2. function pokazWszystkieKategorieDrzewko($idKategorieNadrzedna, $ileKategorii){
  3.  
  4. echo'<ul>';
  5. $i = 1;
  6. $res = mysql_query('SELECT * FROM kategorie WHERE idKategorieNadrzedna='.$idKategorieNadrzedna.' ORDER BY kolejnosc ASC, nazwa ASC');
  7. while($row = mysql_fetch_assoc($res)){
  8.  
  9. echo'<li>';
  10. echo'<a href="index.php?idKategorieWybrana='.$row['idKategorie'].'">'.$row['nazwa'].'</a>';
  11.  
  12. //sprzwdzam czy ma podkategorie
  13. $res1 = mysql_query('SELECT COUNT(*) AS ileKategoriiFROM kategorie WHERE idKategorieNadrzedna='.$row['idKategorie']); 
  14. $row1 = mysql_fetch_assoc($res1);
  15. if($row1['ileKategorii'] > 0){//jeśli ma podkategorie
  16.  
  17. pokazWszystkieKategorieDrzewko($row['idKategorie'],$row1['ileKategorii']);
  18. }
  19. echo'</li>';
  20.  
  21. if($i == $ileKategorii){//jeśli sparsowałem ostatnią
  22. echo'</ul>';
  23. }else{
  24. $i++;
  25. }
  26. }
  27. }
  28.  
  29.  
  30. //WYWOŁANIE FUNKCJI
  31. //pobieram ilość kategorii głównych - tych z poziomem 0 jako nadrzędna
  32. $res = mysql_query('SELECT COUNT(*) AS ileKategoriiFROM kategorie WHERE idKategorieNadrzedna = 0'); 
  33. $row = mysql_fetch_assoc($res);
  34. pokazWszystkieKategorieDrzewko(0,$row['ileKategorii']); // (idKategorieNadrzedna, $ileKategorii)
  35. ?>


Ten post edytował mkdes 2.06.2007, 07:54:49
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 Aktualny czas: 19.08.2025 - 07:33