Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Filtry dynamiczne
Adam93
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.04.2017

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


Cześć,

Chciałbym prosić o pomoc (IMG:style_emoticons/default/smile.gif)

Może przedstawię problem na przykładzie:

Mam pewien sklep internetowy, muszę w nim zrobić dynamiczne filtry tzn:
1. Każda kategoria posiada dynamiczne filtry. W kategorii możemy dodać np. filtr Producent oraz atrybuty filtru: Producent 1, Producent 2, Producent 3. Filtrów może być nieograniczona liczba
2. Każdy produkt przypisany do tej kategorii będzie musiał mieć uzupełniony filtr Producent, można wybrać tylko jeden atrybut filtra Producent w każdym produkcie.

Mój problem polega na tym, że gdy na stronie w widoku danej kategorii zaznaczę jeden filtr np, Producent 1 wyświetli mi produkty tylko te, które mają tego Producenta.
Gdy zaznaczę parę filtrów, np. Producent 1 i Waga 1 nie wyświetla mi żadnego produktu.

Moje zapytanie do bazy wygląda następująco:

CODE
SELECT produkty.* FROM produkty LEFT JOIN kategorie_produkty ON produkty.id = kategorie_produkty.produkty_id LEFT JOIN kategorie_filtry ON produkty.id = kategorie_filtry.produkt_id LEFT JOIN filtry_dynamic ON kategorie_filtry.filtr_id = filtry_dynamic.id WHERE (filtry_dynamic.id = 94 AND filtry_dynamic.id = 95) AND (kategorie_produkty.kategorie_id = 34)


, gdzie filtry_dynamic.id jest to id zaznaczonych filtrów.

Dziękuję za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Adam93
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.04.2017

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


W jsonie jest wynik połączonych tabel, które zwróciło zapytanie:

CODE
[
{
"id":"92",
"symbol":"122d4aa",
"kod":"123",
"nazwa":"",
"link":"plecak",
"cena_netto":"0.00",
"cena":"237.50",
"stara_cena_sprzedazy":"250.00",
"rabat":"5.00",
"podatek":"23",
"opis":"lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor",
"czas":"2",
"dostepnosc":"2",
"bestseller":"0",
"temp":"0",
"sort":"10",
"newsort":"0",
"waga":"2.00",
"cena_wysylki_opcja":"15.00",
"rozmiar_dlugosc":"65.00",
"rozmiar_wysokosc":"65.00",
"rozmiar_szerokosc":"27.00",
"kolor_id":"1",
"material_id":"2",
"stan":"0",
"nowosc":"1",
"promocja":"1",
"nokaut_kategoria":"0",
"filtr_id":"92",
"produkt_id":"6",
"parent_id":"90",
"kat_id":"34",
"atrybut":"Waga 2"
},
{
"id":null,
"symbol":"122d4aa",
"kod":"123",
"nazwa":null,
"link":"plecak",
"cena_netto":"0.00",
"cena":"237.50",
"stara_cena_sprzedazy":"250.00",
"rabat":"5.00",
"podatek":"23",
"opis":"lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor",
"czas":"2",
"dostepnosc":"2",
"bestseller":"0",
"temp":"0",
"sort":"10",
"newsort":"0",
"waga":"2.00",
"cena_wysylki_opcja":"15.00",
"rozmiar_dlugosc":"65.00",
"rozmiar_wysokosc":"65.00",
"rozmiar_szerokosc":"27.00",
"kolor_id":"1",
"material_id":"2",
"stan":"0",
"nowosc":"1",
"promocja":"1",
"nokaut_kategoria":"0",
"filtr_id":"102",
"produkt_id":"6",
"parent_id":null,
"kat_id":null,
"atrybut":null
},
{
"id":null,
"symbol":"123",
"kod":"321",
"nazwa":null,
"link":"plecak-2",
"cena_netto":"0.00",
"cena":"75.00",
"stara_cena_sprzedazy":"0.00",
"rabat":"0.00",
"podatek":"23",
"opis":"lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolorlorem ipsum dolorlorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolorlorem ipsum dolor lorem ipsum dolor",
"czas":"5",
"dostepnosc":"2",
"bestseller":"0",
"temp":"0",
"sort":"10",
"newsort":"0",
"waga":"2.00",
"cena_wysylki_opcja":"10.00",
"rozmiar_dlugosc":"40.00",
"rozmiar_wysokosc":"75.00",
"rozmiar_szerokosc":"60.00",
"kolor_id":"1",
"material_id":"1",
"stan":"0",
"nowosc":"1",
"promocja":"0",
"nokaut_kategoria":"0",
"filtr_id":"91",
"produkt_id":"15",
"parent_id":null,
"kat_id":null,
"atrybut":null
},
{
"id":null,
"symbol":"123",
"kod":"321",
"nazwa":null,
"link":"plecak-2",
"cena_netto":"0.00",
"cena":"75.00",
"stara_cena_sprzedazy":"0.00",
"rabat":"0.00",
"podatek":"23",
"opis":"lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolorlorem ipsum dolorlorem ipsum dolor lorem ipsum dolor lorem ipsum dolor lorem ipsum dolorlorem ipsum dolor lorem ipsum dolor",
"czas":"5",
"dostepnosc":"2",
"bestseller":"0",
"temp":"0",
"sort":"10",
"newsort":"0",
"waga":"2.00",
"cena_wysylki_opcja":"10.00",
"rozmiar_dlugosc":"40.00",
"rozmiar_wysokosc":"75.00",
"rozmiar_szerokosc":"60.00",
"kolor_id":"1",
"material_id":"1",
"stan":"0",
"nowosc":"1",
"promocja":"0",
"nokaut_kategoria":"0",
"filtr_id":"102",
"produkt_id":"15",
"parent_id":null,
"kat_id":null,
"atrybut":null
}
]



Zapytanie:

CODE
SELECT produkty.*, kategorie_filtry.* ,fd0.*, fd1.* FROM produkty
LEFT JOIN kategorie_produkty
ON produkty.id = kategorie_produkty.produkty_id
LEFT JOIN kategorie_filtry
ON produkty.id = kategorie_filtry.produkt_id LEFT
JOIN filtry_dynamic fd0
ON (kategorie_filtry.filtr_id = fd0.id AND fd0.id = 91)
LEFT JOIN filtry_dynamic fd1
ON (kategorie_filtry.filtr_id = fd1.id AND fd1.id = 92)
WHERE (kategorie_produkty.kategorie_id = 34)
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: 13.10.2025 - 21:33