![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 28.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam w bazie kategorie: category_id | category_name | parent_id 1 | Filtry | 0 2 | Oleju | 1 3 | Powietrza | 1 4 | Kabinowe | 1 5 | Paliwa | 1 6 | Z węglem aktywnym | 4 7 | Bez węgla | 4 itp. Chodzi mi o to, że by wyświetlić drzewo kategorii w takiej postaci: -- Filtry ---- Oleju ---- Powietrza ---- Kabinowe ------ Z węglem aktywnym ------ Bez węgla ---- Paliwa Z góry dziękuje za pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
To jeszcze tylko napisz czego dokładnie potrzebujesz bo chyba nie liczysz na gotowy kod
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 28.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Oczekuje pomocy w znalezieniu rozwiązania jak wyświetlić drzewo kategorii
![]()
itp. Tym rozwiazaniem moge sobie to wyswietlić, ale jest ono ograniczone do ilosci wpisanych zapytan, pozatym jestem pewien, ze jest jakies inne rozwiazanie ![]() ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Poszukaj w sieci informacji o strukturach drzewiastych w bazach danych, mogą to być np. drzewka ip, ale nie tylko. Oczywiście nie obejdzie się bez zmiany struktury bazy danych, choć jeśli to drzewo kategorii nie będzie jakoś szczególnie rozbudowane to wystarczy prosta rekurencja.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 3 Dołączył: 12.03.2011 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Są inne rodzaje drzewek ,lepsze,w sumie to każde jest lepsze od twojego przykładu, zainteresuj się "nested sets".
//edit @mortus byłeś szybszy:) Ten post edytował acidm 12.10.2014, 08:50:08 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem polecanie innych modeli drzew jest bezpodstawne. Jeżeli tych kategorii będziesz miał niewiele (to znaczy jeżeli wydajność tego rozwiązania będzie niezadowalająca) to warto pozostać przy parent_id. Z bazy danych pobierz od razu całe drzewo (czyli w Twoim przypadku dane z całej tabeli). Następnie przetwórz sobie wszystko w php i wyświetl.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po nazwach kat. widać że są to auto części, a tych kategorii jest sporo..
Dalej idąc myślą kategorie nie będą dodawane, usuwane, przenoszone za często bo nie widzę takiej potrzeby Dalej wnioskując ilość modyfikacji będzie znikoma w porównaniu do odczytów i działania na drzewach. Reasumując idealne jest nestet set. Owszem trudna implementacja ale zalety jakie ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Napiszę tak bardzo ogólnie. Przydało by się w twoiej bazie podczas dodawania/edycji kategori okreslana w którym rzędzie dana kategoria się zanjduje, ewentualnie funkcja określająca ilu ma rodziców. W takim przypadku w HTML-u generujesz sobie odstęp np padding-left x rząd przykład : Filtry | rząd 1 Kabinowe | rząd 2 Bez węgla | rząd 3 Na takiej podstawie dajesz sobie odpowiednią ilość znaków i problem rozwiązany. PS: Panowie, autor pytał jak to rozwiązać, z tego co widać nie szuka gotowych rozwiązań. Pozdrawiam Ten post edytował Micchaleq 21.10.2014, 14:27:20 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@Micchaleq Przecież nikt tutaj nie podał gotowego rozwiązania, a jedynie kilka sugestii. Drzewa IP czy nested sets to tylko metody na implementację drzewa kategorii w bazie danych. Trzeba to jeszcze wdrożyć, co wcale sprawą prostą nie jest. De facto sam piszesz o potrzebie zmiany struktury bazy danych i dodaniu dodatkowych kolumn, niemniej nigdzie nie piszesz, jak to wykorzystać. Ponadto sprowadzasz problem do kwestii wyświetlania drzewa kategorii, a tymczasem po kodzie autora można wywnioskować, że chodzi raczej o odczytanie drzewa kategorii z bazy danych (przyjrzyj się zagnieżdżonym pętlom while i zastanów się ile kategorii/podkategorii można w ten sposób pobrać).
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:05 |