Jak zrobić menu zagnieżdżone ?

0

Zrobiłem takie menu w php że ma kilka poziomów co wygląda tak:

- cat 1
- cat 2
- cat 3

Klikając nap na cat 2 w adresie przekazuje że rozsuwam menu o id = 2 bo menu jest pobierane z bazy i każda linijka ma swoje ID
następnie pobieram zagnieżdżone menu i wysyłam całość.

- cat 1
- cat 2
---- cat 4
---- cat 5
---- cat 6
- cat 3

Teraz to menu cat 4 tez chciałem zagnieżdżone zrobić tylko teraz w get przekazuje dwa parametry pierwsze to menu ID, drugie to SUB menu ID czyli
adres/index.php?menu_id=2&sub_menu_id=5 i wtedy udaje mi się zrobić rozsuwane menu co wygląda tak

- cat 1
- cat 2
---- cat 4
---- cat 5
------ cat 7
------ cat 8
---- cat 6
- cat 3

Ale na niektórych serwisach widziałem że w adresie było tylko zawsze jedno ID danej kategorii a menu samo już się rozwijało
to jak to można zrobić ? że podam w adresie

adres/index.php?cat_id=8 i juz samo mi się rozwinie menu tam gdzie jest to cat 8 widoczne

0

Pokaż, jak zaprojektowałeś swoją bazę danych.

0

ID | SUB_ID | NAME
---------------- | -------------------
1 | 0 | cat 1
2 | 0 | cat 2
3 | 0 | cat 3
4 | 2 | cat 4
5 | 2 | cat 5
6 | 2 | cat 6
7 | 5 | cat 7
8 | 5 | cat 8

Coś takiego mam, jak sub id = 0 to wiem że to główne menu jak inne niż 0 to pobieram podkategorie ale już z pierwszej zmiennej, jak w podkategorii mam kolejne id to pobieram podkategorie z drugiej zmiennej

0

Przy takiej tabeli nie jesteś w stanie reprezentować drzewa dowolnej głębokości.

Lepiej jest mieć takie kolumny: category_id, parent_category_id, category_name - wtedy możesz dowolnie się tym bawić.

Mając taką strukturę, każda ścieżka w tym drzewie dostępna jest zawsze po jednym idku - tzn. mając dowolny id jesteś w stanie iść aż do samego początku/rodzica (względem właśnie parent_category_id).

0

No moje category id to ID a parent category id to wlasnie SUB ID tylko teraz jak to wyciągnąc ?

0

W sensie? ;p

Rozrysuj sobie tę Twoją tabelę na kartce jako graf, to zrozumiesz.

0

Dobra chyba kumam, wpisze sobie jedno ID jesli bedzie mialo rodzica znaczy ze kolejna rekurencja i tak az do 0

0

O to chodzi ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1