lookasw Opublikowano 24 Sierpnia 2005 Zgłoś Opublikowano 24 Sierpnia 2005 Mam sobie taka tabelkę z kategoriami: SQL 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 COLLATE=utf8_unicode_ci; Potrafię z tego wyciągnąć pełne drzewo kategorii z rozwiniętymi wszystkimi gałęziami: Kod PHP: PHP <?php function makeTree ( $intIDRodzica = 0 ) { global $dbBazaDanych, $arrTree, $iTree, $intLevel; $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: QUOTE Kategoria 1 Kategoria 2 Kategoria 3 Kategoria 4 Klikam na Kategoria 2 i przekazuję GET IDKategorii = 2 (na przykład): QUOTE 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): QUOTE 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 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
lookasw Opublikowano 25 Sierpnia 2005 Zgłoś Opublikowano 25 Sierpnia 2005 Czy naprawde nikt nie potrafi mi pomoc? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...