Skocz do zawartości
lookasw

Drzewko - Rozwijane Menu [php]

Rekomendowane odpowiedzi

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 )

{

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 ( &#33; $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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...