![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 0 Dołączył: 29.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki problem, potrzebuje przerobić sklep internetowy. Są tam roznego rodzaju produkty podzielone na kategorie w taki sposób: Tabela: kategorie id | sub_ctg | nazwa Przykladowe dane: 1 | 0 | art. biurowe 2 | 1 | długopisy 3 | 1 | mazaki 4 | 2 | żelowe 5 | 2 | atramentowe Jak nietrudno zauważyć na powyzszym przykładzie, kategorie są ułożone w sposob podajacy jako SUB nr ID, dzieki czemu można tworzyc nieskonczona ilość podkategorii. Mam problem teraz z zapytaniem do bazy, ktore by mi wyswietliło drzewko takiego układu. Nie mam pomysłu na zapytanie w sql ani ew. (po wyborze wszystkich danych) obróbkę wyniku w php. Chciałbym osiągnać taki efekt (wg danych z pow. przykładu): art. biurowe - długopisy - - żelowe - - atramentowe - mazaki Myślę, że wyraziłem się jasno ![]() Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Szukaj pod hasłem rekurencja + drzewka.
Generalni ja to widzę tak, że pobierasz dane a następnie idziesz po kolei po głównych kategoriach i sprawdzasz czy w dany węzeł ma dzieci. Jeśli ma to wznawiasz procedurę ich wyświetlenia i znowu dla dzieci wyświetlasz ich dzieci. Jeśli dany element nie ma dzieci to wracasz do wyższego węzła itd. Na początku wydaje się to trochę zagmatwana ale wystarczy prosta rekurencja. Kiedyś nawet widziałem na wortalu artykuł napisany chyba przez scanera o drzewkach. Tak między nami to uważam, że znacznie lepsza jest struktura gdzie z góry zakładasz, że może być maksymalnie 5 poziomów zagnieżdzenia i dany poziom może mieć np. max 99 elemetnów. Wtedy masz id np. 0101010000 i nie ma potrzeba przechodzenia przez całe drzewo, żeby dowiedzieć się co to za element. Ten post edytował athabus 8.12.2006, 19:26:03 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 22:24 |