Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

[MySQL] Filtrownie produktów po parametrach

Zdecydowałeś się na tworzenie interaktywnych stron przy pomocy PHP? Chcesz w łatwy i szybki sposób zarządzać danymi na swojej stronie? Tutaj znajdziesz pomoc w napotkanych przy tym trudnościach.

[MySQL] Filtrownie produktów po parametrach

Post 03.11.2017, 15:01:15

Witam
Potrzebuję pomocy przy następującym problemie:
Mam m.in tabele
products (products_id, .., ...)
products_to_products_extra_fields (products_id, products_extra_fields_id, products_extra_fields_value)

Chciałbym filtrować produkty po dodatkowych polach produktów i napisalem kika zapytań, to ktore powinno dzialać wygląda następująco:

Kod: Zaznacz cały
select
p.products_id, p.manufacturers_id, p.products_price, pd.products_name
from
products_description pd,
products_to_categories p2c,
products p left join  manufacturers  m on p.manufacturers_id = m.manufacturers_id   
where
p.products_id in (SELECT p2pef.products_id
                  FROM products_to_products_extra_fields p2pef
                  WHERE
               // filtr nr 1
               (p2pef.products_extra_fields_id = '102' and p2pef.products_extra_fields_value = 'tak')
               // filtr nr 2
               and (p2pef.products_extra_fields_id = '94' and p2pef.products_extra_fields_value = 'tak')
          // kolejne filtry ...
                   )

and p.products_status = '1'
and p.products_id = pd.products_id
and p.products_id = p2c.products_id
and pd.language_id = '4'
and p2c.categories_id = '26'
                       
group by p.products_id



Przy 1 filtrze zapytanie wyślwietla poprawnie wynik, jeśli jest więcej niż jeden filtr zapytanie zwraca 0 wyników.
Czy wie ktoś gdzie może leżeć przyczyna ?
arturro85
Posty: 2
Dołączył(a): 03.11.2017

Re: [MySQL] Filtrownie produktów po parametrach

Post 03.11.2017, 17:17:59

Taki kod wyświetla tylko 1 rekord

Kod: Zaznacz cały
select
p.products_id, pd.products_name
from
products_description pd,
products_to_categories p2c,
products p
where
EXISTS (SELECT p2pef.products_id
                  FROM products_to_products_extra_fields p2pef
                  WHERE p2pef.products_extra_fields_id = '78'
                 and p2pef.products_extra_fields_value = 'tak'
                   and p.products_id = p2pef.products_id )
and
EXISTS (SELECT p2pef.products_id
                  FROM products_to_products_extra_fields p2pef
                  WHERE p2pef.products_extra_fields_id = '94'
                  and p2pef.products_extra_fields_value = 'tak'
                    and p.products_id = p2pef.products_id )         
               
                 
and p.products_status = '1'
and p.products_id = pd.products_id
and p.products_id = p2c.products_id
and pd.language_id = '4'
and p2c.categories_id = '26'
                       
group by p.products_id


arturro85
Posty: 2
Dołączył(a): 03.11.2017


Powrót do PHP i bazy danych


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot], Google [Bot] i 9 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 50698 zarejestrowanych użytkowników.
Najnowszy użytkownik: m1kie


Nasi użytkownicy napisali:

  • 936100 wiadomości
  • w 246729 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)