![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
jest jakieś drzewo, powiedzmy, że produktów (id | parentid). Do produktów są przypisane tagi (osobna tabela z tagami i tabela łącząca). I teraz chce wyświetlić wszystkie produkty mające przypisany jakiś tag. Ale chcę wyświetlić je w formie drzewa (kilka poziomów). I teraz jest trudność, bo tagi przypisuje zwykle do produktów (nie do kategorii). Czyli pobranie tabeli z drzewem z prostym warunkiem WHERE odpada, bo jeśli jakiś rodzic nie ma odpowiedniego tagu to nie zostanie wyświetlony, jego dzieci też nie. A jeśli mają odpowiedni tag to powinny. Np rodzic "monitory" nie ma tagu lcd, jego potomek "monitory lcd" już ma ten tag, i oczywiście wszystkie monitory lcd w grupie "monitory lcd" mają tag lcd. Pobierając drzewo z prostym warunkiem WHERE nie wyświetlę kategorii "monitory" bo nie ma tagu lcd, czyli nie wyświetlę żądnych monitorów. Nie mam pojęcia jak to zrobić żeby było dobrze. Jedyne co wymyśliłem to mając id (powiedzmy 12345) kategorii mógłbym rekurencyjnie sprawdzać czy któryś z potomków na dowolnym poziomie nie ma odpowiedniego tagu. Jeśli ma to wyświetlam kolejnych potomków kategorii o id=12345 aż dojdę do produktu który ma szukany tag. I tak dla każdego id. Bardzo zagmatwane. Jak to lepiej zrobić?? Wyświetlane produktów jako listy odpada ma być drzewko (IMG:style_emoticons/default/biggrin.gif) Uwziąłem się i chcę się dowiedzieć jak to wykonać. pozdro (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
O ile pamiętam z Twojego wcześniejszego opisu, to produkty wraz z kategoriami są w jednej tabeli, różnią się tylko tym, że produkty nie mają potomków. Zakładam coś w rodzaju: | ID | PARENT_ID | CHILDREN | NAME | DESC | Czyli w zasadzie możesz pobrać w wszystkie rekordy, wraz z rodzicami, dla których ID istnieje w tabeli PRODUCTS_TAGS dla wybranego tagu. Tak dokładnie to mam: id | parentid | ipadress | depth To czy jakiś produkt ma potomków to sprawdzam w sql. Szukam takich id które występują albo nie w kolumnie parentid dla innych produktów. Tylko co zrobić jak już mam pobraną całą tabelę do php? Wcześniej pobierałem kolejne gałęzie drzewa osobnymi SELECT. Nie wiem jak w php z tabeli drzewa wygenerować zagnieżdżoną listę. pozdro |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 02:06 |