CREATE TABLE produkty_kategorie ( IDKategorii int(11) NOT NULL AUTO_INCREMENT, IDRodzica int(11) NOT NULL DEFAULT '0', KolejnoscWyswietlania int(11) NOT NULL DEFAULT '0', NazwaKategorii text NOT NULL, OpisKategorii text NOT NULL, PRIMARY KEY (IDKategorii), KEY IDRodzica (IDRodzica), KEY IDModulu (IDModulu), KEY KolejnoscWyswietlania (KolejnoscWyswietlania) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Potrafię z tego wyciągnąć pełne drzewo kategorii z rozwiniętymi wszystkimi gałęziami:
<?php function makeTree ( $intIDRodzica = 0 ) { $rsKategorie = $dbBazaDanych->Execute ( 'SELECT IDKategorii, IDRodzica, NazwaKategorii, KolejnoscWyswietlania FROM ' . KLIENT . 'produkty_kategorie WHERE IDRodzica = ' . (int)$intIDRodzica . ' ORDER BY KolejnoscWyswietlania ASC' ); while ( ! $rsKategorie->EOF ) { $arrTree[$iTree]['IDKategorii'] = $rsKategorie->fields['IDKategorii']; $arrTree[$iTree]['KolejnoscWyswietlania'] = $rsKategorie->fields['KolejnoscWyswietlania']; $arrTree[$iTree]['NazwaKategorii'] = $rsKategorie->fields['NazwaKategorii']; $arrTree[$iTree]['Poziom'] = $intLevel; $iTree++; $blnHasChild = (bool)$dbBazaDanych->GetOne ( 'SELECT COUNT(*) FROM ' . KLIENT . 'produkty_kategorie WHERE IDRodzica = ' . $rsKategorie->fields['IDKategorii'] ); if ( $blnHasChild ) { makeTree ( $rsKategorie->fields['IDKategorii'], $intLevel++ ); } $rsKategorie->MoveNext (); } $intLevel--; } ?>
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
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
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
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

Dzięki i pozdrawiam