Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Filtr produktów
starcode
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 18.06.2006

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


Witam!

Piszę obecnie skrypt bazy produktów (dajmy na to komputerów, gdzie mamy monitory, laptopy, drukarki itp. itd.).
Pojawia się problem / pytanie jak wykonać filtrowanie produktów (czyli pokazywanie produktów o określonych paramterach, np.: matryca, bateria, system operacyjny, procesor, producent itp.).

Tabela produktu zawiera podstawowe dane (id, nazwa, cena, opis, zdjęcie, grupa_id, kategoria_id, podkategoria_id).
Tabela parametrów zawiera: id, id_paramteru, id_produktu, wartosc_paramteru
Tabela nazw paramterów zawiera id, nazwa

Tabela nazw param. jest połączona z tabelą param. relacją jeden do wielu (jedna nazwa param. do wielu wartości param.)
Tabela param. z tabelą produktów połączona jest relacją wiele do jednego (jeden produkt może mieć wiele paramterów)

Pytanie: Jak teraz pobrać te produkty, które mają np. system operacyjny = Windows XP i producent = ASUS?

Jest to dla mnie teraz zagadka i nie wiem jak ugryźć temat.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ddiceman
post
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Sprobuj cos w stylu
  1. SELECT
  2. id_produktu,
  3. SUM(
  4. IF(id_parametru = 1 AND wartosc_parametru = 'Windows XP', 1, /* kazdy warunek */
  5. IF(id_parametru = 2 AND wartosc_parametru = 'Asus', 1,
  6. 0
  7. )) /* tyle nawiasow zamykajacych, ile warunkow */
  8. ) AS warunek
  9. FROM parametry LEFT JOIN nazwy_parametrow ON (parametry.id_parametru = nazwy_parametrow.id)
  10. WHERE id_parametru IN (1, 2) /* to do dziala niepotrzebne, ale w celach optymalizacji */
  11. GROUP BY id_produktu
  12. HAVING warunek = 2 /* taka liczba, ile warunkow*/ ;


Ten post edytował ddiceman 23.03.2009, 13:47:19
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: 5.10.2025 - 12:48