![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taką bazę kategorii:
Najniższy poziom zagłębienia jaki mam to level = 12. Chce zrobić: - listę kategorii po kliknięciu której zobaczymy WSZYSTKIE produkty mieszczące się w wybranym parencie "w dół". Czyli jeśli mamy np takie kategorie: - Samochody -- Osobowe --- Skoda ----- Rapid ------- Części -------- Elektronika ---------- Komputery ----- Octavia ----- SuperB ----- Fabia --- Opel --- Peugeot --- Mazda I ktoś kliknie np. w samochody - to wyświetlą mu się wszystkie produkty należące do kategorii "SAMOCHODY". W momencie gdy klikniemy na "RAPID" to wyświetlą się nam produkty należące do kategorii: rapid / części / elektronika / komputery. Mam taką bazę produktów:
Próbowałem ten problem rozwiązać w ten sposób:
Co w wyniku zwracało mi zapytanie do wyświetlania produktów:
Wszystko byłoby okey gdyby nie to, że mam podgląd tylko do poziomu "niżej" - a nie od tego w którym się aktualnie znajduje -> "do końca". I tak np. będąc w kategorii "RAPID" - nie mam produktów, ale już wchodząc do KOMPUTERY mam ich bardzo wiele. Wie ktoś może jak zmienić powyższe zapytania aby całość była widoczna? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
bardzo dziękuję za pomoc
![]() Mam jednak jeszcze jedno pytanie. Mam zapytanie z tego przykładu:
Jednak to mi zrzuca całą listę multikategorii (a chciałbym poruszać się tylko poniżej wybranego parentu). Wykombinowałem takie coś:
I owszem działa - tylko wyświetla mi kategorie poniżej wybranego parentu - nie wchodzi już np. 2,3,4 czy 5 poziomów poniżej... Wiesz może jak to zmienić? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie kombinuj tylko zapoznaj się z tym, co Ci podał kolega. Zapewniam Cię, że po lekturze całości znajdziesz odpowiedź na swoje pytanie.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
tzn znalazłem takie zapytanie ( http://www.wykop.pl/ramka/371768/konstrukc...ypu-nested-set/ ):
Z opisu wynika iż to: 376769 jest "górna" kategoria od której zaczynamy szukać.... A jak nie wiem jaka jest ostatnia, to co wpisać po and (w miejsce kropek)? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Możesz powiedzieć ładnie co chcesz zrobić ?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
OK, już tłumaczę
![]() mam takie drzewko: - Samochody -- Osobowe --- Skoda ----- Rapid ------- Części -------- Elektronika ---------- Komputery ----- Octavia ----- SuperB ----- Fabia --- Opel --- Peugeot --- Mazda (lista kategorii). Po wybraniu jakiejś kategorii chcę wyświetlić należące do niej produkty. Czyli tak jak sugerowaliście, na początku muszę mieć id wszystkich kategorii - od tej w której jestem "w dół". W momencie gdy kliknę w "samochody" to chcę otrzymać id kategorii: - Samochody -- Osobowe --- Skoda ----- Rapid ------- Części -------- Elektronika ---------- Komputery ----- Octavia ----- SuperB ----- Fabia --- Opel --- Peugeot --- Mazda W momencie gdy Kliknę w "Osobowe": -- Osobowe --- Skoda ----- Rapid ------- Części -------- Elektronika ---------- Komputery ----- Octavia ----- SuperB ----- Fabia --- Opel --- Peugeot --- Mazda W momencie gdy Kliknę "Skoda": --- Skoda ----- Rapid ------- Części -------- Elektronika ---------- Komputery ----- Octavia ----- SuperB ----- Fabia Lub gdy kliknę w "Rapid": ----- Rapid ------- Części -------- Elektronika ---------- Komputery Chcę wyświetlać produkty które są w wybranej kategorii ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
SELECT id FROM multikategorie WHERE left >= left_z_kat_kliknietej AND right <= right_z_kat_klieknietej;
jak zmienisz na <= i >= to dstaniesz razem z obecną. Ten post edytował Pyton_000 15.10.2015, 12:55:37 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
takie zapytanie:
SELECT title, id FROM multikategorie WHERE multikategorie.left <= 376769 AND multikategorie.right >= 376769; nie zwraca prawdziwych wyników ![]() Pokazują się kategorie nie związane z parentem |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
tfuu... odwrotnie left >= i right <=
![]() Ten post edytował Pyton_000 15.10.2015, 12:55:24 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
SELECT title, id
FROM multikategorie WHERE multikategorie.left >= 376769 AND multikategorie.right <=376769 teraz nic nie zwraca.... a powinien ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
a skąd masz tą wartość: 101816
![]() ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
To są Wartości left i right dla ID które klikasz
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, ale się zagubiłem
![]() Jestem na górze drzewka kategorii - klikam 1 kategorię np. o ID 325193 - i wtedy co dalej? Mam tylko 1 wartość.... |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Chłopie czytaj to co piszę.
to są wartości LEFT i RIGHT z BAZY dla ID == np. 325193 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 0 Dołączył: 28.09.2015 Ostrzeżenie: (0%) ![]() ![]() |
dziękuję, teraz zrozumiałem
![]() ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 02:43 |