![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 189 Pomógł: 13 Dołączył: 20.09.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
mam za zadanie na podstawie bazy danych MySQL zbudować drzewo grup towarów.
tabela, na podstawie której mam zrobić to drzewo:
jeśli id_nadrzedne = 0 to rekord jest traktowany jako korzeń (czy jak to się zwie (IMG:style_emoticons/default/biggrin.gif) ) zakładając, że w bazie są już jakieś dane przykładowe: Kod 1, 0, 'Procesory' 2, 0, 'Płyty główne' 3, 0, 'Dyski twarde' 4, 3, 'SATA' 5, 3, 'PATA' 6, 4, 'Western Digital' 7, 4, 'Seagate' 8, 5, 'Samsung' 9, 1, 'AM3' 10, 9, 'Athlon II 250' powinienem otrzymać drzewo: Kod Procesory |--AM3 |--Athlon II 250 Płyty główne Dyski twarde |--SATA | |--Western Digital | |--Seagate |--PATA |--Samsung jedyne rozwiązanie, jakie przychodzi mi do głowy to programowa obróbka całej tabeli: pobranie i odpowiednie sortowanie przez program, a nie przez bazę... czy da się to jakoś inaczej rozwiązać? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
http://www.google.com/search?hl=en&saf...mp;aql=&oq= - 12 mln wyników - a Ty nawet w jeden nie zajrzałeś? Było to poruszane dziesiątki razy...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 189 Pomógł: 13 Dołączył: 20.09.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
czyli, jak widzę, nie ma rozwiązania mojego problemu. nie mogę zmodyfikować tej bazy, a poziom hierarchii drzewa może być dowolny...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Musisz rekursywnie przeprowadzić zapytanie, które Ci wybierze wszystkie dzieci z sql'a. A struktura z parent_id jest stara jak świat i mało wydajna. W necie aż huczy od rozwiązań tego problemu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
czyli, jak widzę, nie ma rozwiązania mojego problemu. nie mogę zmodyfikować tej bazy, a poziom hierarchii drzewa może być dowolny... Jeśli nie możesz modyfikować bazy to nie pozostaje CI nic innego jak obrabiać dane na poziomie PHP. W przeciwnym razie poradziłabym Ci zmienić konstrukcję drzewa i zaimplementować netsted set. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 20:50 |