![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam. Próbowałem sam wymyślić na to sposób jednak mi się nie udało. Mam tabelę "kategorie", w której ma strukturę:
Cytat ID | Name | isParent | parentID | Position Pole "Position" służy do sortowania elementów wewnątrz tego samego rodzica, polem "isParent" sprawdzam czy dany element ma potomków a pole "parentID" to wiadomo. Mój problem polega na tym że nie wiem jak jednym zapytaniem (lub jak najmniejszą ich ilością i pętlą php) pobrać tylko jedną gałąź drzewa czyli podając ID rodzica pobieram rodzica i jego wszystkich potomków i pod-potomków itd. Jak to wykonać i czy w tym układzie to w ogóle możliwe? Pozdrawiam P.S. Jeżeli w nieprawidłowym dziale to przepraszam. Ten post edytował grz16w 10.08.2011, 06:49:57 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
A bo to przez moje nieprawidłowe interpretowanie pola Position (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/sciana.gif)
myślę że pozostałe operacje teraz pójdą prawidłowo (IMG:style_emoticons/default/smile.gif) choć już mnie martwi Cytat Jeśli już utworzysz depth, działanie algorytmu będzie dość proste: pobierasz depth dla pożądanego węzła, zapisujesz sobie position. Po czym szukasz najbliższego węzła o takim samym depth sortując po position. Zapisujesz sobie jego position. jak to zrobić gdy to jest ostatni element na danym depth i nie ma już następnego węzła, tylko na przykład węzeł wyższego poziomu... Albo ja już nie umiem myśleć albo praca mnie wykańcza (IMG:style_emoticons/default/wstydnis.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 14:15 |