![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 2 Dołączył: 9.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od dłuższego czasu zastanawiam się nad rozwiązaniem aby wyświetlić produkt w nadrzędnych kategoriach do których należy kategoria w której jest przypisany. NP. drzewo Kategoria A (id:1,parent_id:0) -kategoria b (id:8,parent_id:1) -kategoria c (id:9,parent_id:1) -kategoria cc (id:10,parent_id:9) Produkt produkt (id:1, category_id:10) Chciałbym aby ten produkt wyświetlał się po wejściu Kategoria A, kategoria B i oczywiście kategoria CC |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Możesz albo pobrać wszystkie kategorię których poziom jest wyższy od aktualnej a potem w pętli rekursywnej sprawdzać czy zawiera kategorię nadrzędne do kategorii szukanej, oczywiście w każdej iteracji pętli jeżeli znajdziesz jakąś kategorię nadrzędną robisz dla niej dokładnie taką samą pętlę. Potem mając już gotową tablicę zawierającą id każdej interesującej nas kategorii przy wyciąganiu produktów z bazy robisz WHERE category_id IN (...) . Niestety przy naprawdę dużych tablicach można tak dostać zadyszki. Lub użyć czegoś sprytniejszego, technik jest całkiem sporo, ogólnie hasło po którym możesz ich szukać to 'Storing Hierarchical Data in a Database'.
Ten post edytował Uriziel01 27.02.2012, 12:04:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 14:13 |