![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Pobieram kategorie z bazy za pomocą zapytania SQL w którym jest JOIN LEFT.
Zaprezentuję na przykładzie jak to wygląda. Powiedzmy że mam w bazie 4 rekordy przy czym każdy następny jest podkategorią poprzedniego. id name parent 1 Cat1 0 2 Cat2 1 3 Cat3 2 4 Cat4 3 Pobieram je zapytaniem ( zapytanie jest bardziej skomplikowane, bo w rzeczywistości pobieram dane z 5 tabel na raz , to jest uproszczony model ):
Wyświetla to coś takiego: Kod p_name c_id c_name c_parent c_id2 c_name2 c_parent2 Projekt 1 Cat1 0 2 Cat2 1 Czyli nie wyświetla podkategorii-podkategorii ok kiedy usunę AND category1.cat_parent_id = 0 to wynik jest taki: Kod p_name c_id c_name c_parent c_id2 c_name2 c_parent2 Projekt 1 Cat1 0 2 Cat2 1 Projekt 1 Cat2 0 2 Cat3 2 Projekt 1 Cat3 0 2 Cat4 3 Projekt 1 Cat2 0 NULL NULL NULL Projekt 1 Cat3 0 NULL NULL NULL Projekt 1 Cat4 0 NULL NULL NULL Czyli zupełnie nie potrzebnie wyświetla mi 3 ostatnie rekordy. Co przy dużej liczbie kategorii znacząco opóźni wykonanie. Co ja mam na to poradzić ? :| edit > mwojcik: Nie wiem jak mam ci to jeszcze prościej wytłumaczyć. Jak zaznaczyłem wcześniej zapytanie pobiera dane Z PIĘCIU TABEL i muszę jakoś je uprościć. Zrobiłem to nie tyle wystarczająco ile prościej się nie da. Ten post edytował orglee 24.08.2007, 09:50:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim jak podales juz "strukture" bazy to chociaz trzymaj sie nazewnictwa w zapytaniu i w wynikach zapytania, ktore publikujesz pozniej.
Nie jestem pewien co chcesz wyciagnac, ale takie zapytanie :
zwroci liste kategorii razem z rodzicami : Kod category_id category_name parent_category_id parent_category_name parent_parent_category_id
1 cat 1 0 NULL NULL 2 cat 2 1 cat 1 0 3 cat 3 2 cat 2 1 4 cat 4 3 cat 3 2 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:16 |