![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie - czy w takim przypadku można zastosować zapytanie w pętli? Ewentualnie jakie jest inne rozwiązanie tego problemu?
Chodzi o uzyskanie tablicy jak poniższa: potrzebuję mieć w niej kategorie i podłączone do nich wybrane podkategorie (wybierane one są z tabeli wg. potrzeb, tzn. nie są podłączone wszystkie podkategorie tylko wybrane według potrzeb). Z jednej strony mój pomysł opiera się właśnie na zapytaniu w pętli - a drugi to łączenie dwóch tablic po key'u. Wydaje mi się, że pomysł z zapytaniem w pętli jest lepszy, aczkolwiek na tzw. "czuja" nie podoba mi się samo hasło "zapytania w pętli". Bardzo proszę kogoś o dokładną analizę kodu - borykam się z tym problemem od jakiegoś czasu i do tej pory nie udało mi się uzyskać satysfakcjonującej odpowiedzi. Generalnie nie chodzi tutaj o funkcję kategorie / podkategorie - to dałem tylko dla przykładu. W rzeczywistości każda gałąź [sub] -> ma mieć jeszcze [data] -> a potem duże [items].
Powyższa tablica uzyskana z zapytania:
Ten post edytował dizor 17.09.2009, 13:43:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 7 Dołączył: 29.04.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mając dużą tablicę o wielu poziomach zajedziesz bazę danych.
Już lepiej użyć xml w tym celu. generujesz sobie odpowiedni plik, a następnie używasz prostej biblioteki SimpleXml do obróbki. W efekcie dostajesz tablicę obiektów, bardzo podobną do tej, którą przedstawiłeś. Następnie wygenerowanie listy kategorii to kwestia napisania jednej funkcji rekurencyjnej, która przechodzi przez całą tablicę i wywołuje samą siebie, jak natrafi na 'głębszy' poziom |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 3 Dołączył: 27.07.2007 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że xml nie będzie tutaj potrzebny. Wdaje mi się, że chodzi ci o zwykła strukturę drzewiastą, zwykle kategorie i wszystkie podkategorie trzyma się w jednej tabeli i wyciąga jednym zapytaniem, a drzewka można zrobić na wiele sposobów.
-------------------- Website: mdabrowski.net
Zend_Framework, Zend_Cache, Ajax w JQuery |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi jednak o coś bardziej skomplikowanego - przynajmniej tak mi się wydaje - chociaż być może zbytnio sobie to utrudniam.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 3 Dołączył: 27.07.2007 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Czyli tworzysz sobie tablicę
1. z kategorią 2. z podkategoriami 3. z elementami tych podkategorii Robienie tego w pętli nie jest dobrym pomysłem, ale w ostateczności mogło by się nadać (jak nie masz innego pomysłu) jeśli masz niewiele podkategorii, bo zakładam że pobierasz jedną kategorie i wszystkie jej podkategorie na raz - no i oczywiście w takim przypadku powinieneś to cachować. Tak czy inaczej ja bym użył drzewek do kategorii i do tego dokleił tablicę z itemami (to chyba max 2 zapytania), no chyba że chodzi ci zupełnie o coś innego czego ja nie mogę zrozumieć po tym co napisałeś. -------------------- Website: mdabrowski.net
Zend_Framework, Zend_Cache, Ajax w JQuery |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 15:53 |