Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wywołanie określonej gałęzi z drzewa kategorii
grz16w
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grz16w
post
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)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 14:15