Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Drzewka w PHP/SQL
ladovnik
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 25.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Witaj. Przeczytałem na stronie http://depesz.com/various/various-sqltrees.php opis, jak robić system kategorii z nielimitowaną ilością podkategorii, chodzi mi o Metodę 2.

Generalnie ją rozumiem i bez problemu przy jej pomocy zrobiłem skrypt downloadu, pozwalający na nielimitowaną ilość podkategorii. Z wyświetlaniem nie było problemu, za to problem się pojawia przy tworzeniu drzewa kategorii.
Otóż w Panelu Admina przy dodawaniu pliku do downlaodu należy wybrać do jakiej kategorii ma zostać dodany plik - w tym celu chciałbym wyświetlić drzewo w formie:

Kod
Kategoria 1
-- Podkategoria 1
-- Podkategoria 2
-- -- Podkategoria 1
-- -- Podkategoria 2
-- -- Podkategoria 3
Kategoria 2
-- Podkategoria 1
-- -- Podkategoria 1
-- -- -- Podkategoria 1
-- -- -- Podkategoria 2
-- -- Podkategoria 2
-- Podkategoria 2
-- -- Podkategoria 1


Oczywiście drzewko powinno generować się dla nielimitowanej ilości zagłębień. I w tym problem - gdybym widział ile ma być zagłębień, to nie problem zrobić takie drzewko, napisać kod dla np. trzech zagłębień i już. A tutaj trzeba zrobić tak, aby niezależnie od liczby zagłębień drzewko sie generowało. Czy ma ktoś pomysł, jak to zrobić?

Pozdrawiam,
ladovnik
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Oczywiście drzewko powinno generować się dla nielimitowanej ilości zagłębień. I w tym problem - gdybym widział ile ma być zagłębień, to nie problem zrobić takie drzewko, napisać kod dla np. trzech zagłębień i już. A tutaj trzeba zrobić tak, aby niezależnie od liczby zagłębień drzewko sie generowało. Czy ma ktoś pomysł, jak to zrobić?

Rekurencyjnie. ALE: jest to struktura mało wydajna, gdyż nowe zagłębienie = kolejne zapytanie.

Poszukaj drzewka bazującego na kolejności + stopnia zagłębienia. Nie jest może takie łatwe w manipulacji, ale jesteś w stanie całe drzewko wygenerować przy pomocy jednego zapytania.
Go to the top of the page
+Quote Post
ladovnik
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 25.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Tak, wiem. Ale ten skrypt będzie używany tak, że oprócz niego nic innego nie generuje zapytań. A kategorie pewnie będą miały strukturę podobną do tej:
Kod
Windows
-- Programy
-- -- Edukacyjne
-- -- Biurowe
-- Gry
-- -- Wyścigowe
-- -- Strategiczne
Linux
-- Programy
-- -- Edukacyjne
-- -- Biurowe
-- Gry
-- -- Wyścigowe
-- -- Strategiczne

Czyli nie będą przekraczać trzeciego stopnia zagłębienia. Na dodatek to kompletne drzewko kategorii będzie wyświetlane jedynie w PA, a admin nie wchodzi codziennie na stronę, żeby dodać kilkadziesiąt kategorii, także częstotliwość skorzystania z wyświetlenia tego drzewka będzie bardzo mała, zatem można zaryzykować małą niewydajność...

Gdyby tak ktoś mógł mi przybliżyć trochę, co i jak z tą rekurencją w moim przypadku, byłbym bardzo wdzięczny.

Ten post edytował ladovnik 28.07.2009, 18:12:44
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Czyli nie będą przekraczać trzeciego stopnia zagłębienia. Na dodatek to kompletne drzewko kategorii będzie wyświetlane jedynie w PA, a admin nie wchodzi codziennie na stronę, żeby dodać kilkadziesiąt kategorii, także częstotliwość skorzystania z wyświetlenia tego drzewka będzie bardzo mała, zatem można zaryzykować małą niewydajność...

Twojego podejścia pochwalić nie można, ale skoro się upierasz...

Robisz metodę do wyciągania np. getItems($cat), a ona wyciąga wszystko z danej kategorii. I potem to, co zwróci przelatujesz pętlą i znowu wywołujesz dla każdej z nich getItems, i tak dalej...
Go to the top of the page
+Quote Post
z3L
post
Post #5





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 22.08.2006

Ostrzeżenie: (0%)
-----


Ja polecam skorzystać z drzewka depesza.
Go to the top of the page
+Quote Post
elmozaur
post
Post #6





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


racja.
Zakladajac, ze liczba kategorii i podkategorii jest skonczona spokojnie mozna uzyc
drzewka depesza -> metoda nr2 + modyfikacja informacji o glebokosci.

Ja to stosuje do graficznej modyfikacji struktur 5 poziomowych i sprawdza sie swietnie
Go to the top of the page
+Quote Post

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: 22.08.2025 - 12:24