Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Drzewko - rozwijane menu
NoiseMc
post 3.08.2005, 08:03:54
Post #1





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Mam sobie taka tabelkę z kategoriami:

  1. CREATE TABLE produkty_kategorie (
  2. IDKategorii int(11) NOT NULL AUTO_INCREMENT,
  3. IDRodzica int(11) NOT NULL DEFAULT '0',
  4. KolejnoscWyswietlania int(11) NOT NULL DEFAULT '0',
  5. NazwaKategorii text NOT NULL,
  6. OpisKategorii text NOT NULL,
  7. PRIMARY KEY (IDKategorii),
  8. KEY IDRodzica (IDRodzica),
  9. KEY IDModulu (IDModulu),
  10. KEY KolejnoscWyswietlania (KolejnoscWyswietlania)
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Potrafię z tego wyciągnąć pełne drzewo kategorii z rozwiniętymi wszystkimi gałęziami:

  1. <?php
  2.  
  3. function makeTree ( $intIDRodzica = 0 )
  4. {
  5. global $dbBazaDanych, $arrTree, $iTree, $intLevel;
  6.  
  7. $rsKategorie = $dbBazaDanych->Execute 
  8. ( 
  9. 'SELECT 
  10. IDKategorii, 
  11. IDRodzica, 
  12. NazwaKategorii, 
  13. KolejnoscWyswietlania 
  14. FROM ' . KLIENT . 'produkty_kategorie 
  15. WHERE IDRodzica = ' . (int)$intIDRodzica . 
  16. ORDER BY KolejnoscWyswietlania ASC' 
  17. );
  18.  
  19. while ( ! $rsKategorie->EOF ) 
  20. {
  21. $arrTree[$iTree]['IDKategorii'] = $rsKategorie->fields['IDKategorii'];
  22. $arrTree[$iTree]['KolejnoscWyswietlania'] = $rsKategorie->fields['KolejnoscWyswietlania'];
  23. $arrTree[$iTree]['NazwaKategorii'] = $rsKategorie->fields['NazwaKategorii'];
  24. $arrTree[$iTree]['Poziom'] = $intLevel;
  25.  
  26. $iTree++;
  27.  
  28. $blnHasChild = (bool)$dbBazaDanych->GetOne ( 'SELECT COUNT(*) FROM ' . KLIENT . 'produkty_kategorie WHERE IDRodzica = ' . $rsKategorie->fields['IDKategorii'] );
  29.  
  30. if ( $blnHasChild ) 
  31. {
  32. makeTree ( $rsKategorie->fields['IDKategorii'], $intLevel++ );
  33. }
  34.  
  35. $rsKategorie->MoveNext ();
  36. }
  37.  
  38. $intLevel--;
  39. }
  40.  
  41. ?>


Teraz coś z czym nie mogę sobie poradzić, z tej tablicy muszę wyciągnąć sobie menu rozwijane czyli w pierwszej chwili menu wygląda tak:

Cytat
Kategoria 1
Kategoria 2
Kategoria 3
Kategoria 4


Klikam na Kategoria 2 i przekazuję GET IDKategorii = 2 (na przykład):

Cytat
Kategoria 1
Kategoria 2
-- Podkategoria 1
-- Podkategoria 2
-- Podkategoria 3
Kategoria 3
Kategoria 4


Klikam na Podkategoria 1 i przekazuję GET IDKategorii = 7 (na przykład):

Cytat
Kategoria 1
Kategoria 2
-- Podkategoria 1
-- -- PodPodkategoria 1
-- -- PodPodkategoria 2
-- Podkategoria 2
-- Podkategoria 3
Kategoria 3
Kategoria 4


itd.

Proszę pomóżcie napisać mi funkcję, która będzie w sposób opisany na początku wyciągać mi takie drzewo na podstawie przekazanego przez GET IDKategorii.

Niestety z drzewkami i z rekurencją radzę sobie słabo sad.gif

Dzięki i pozdrawiam

Ten post edytował NoiseMc 3.08.2005, 08:41:52


--------------------
Go to the top of the page
+Quote Post

Posty w temacie
- NoiseMc   Drzewko - rozwijane menu   3.08.2005, 08:03:54


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: 19.07.2025 - 06:45