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
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




no to to chyba by było tak:

  1. SELECT produkty.nazwa FROM produkty, parametry WHERE produkty.id=parametry.id_produktu AND parametry.id_paramteru='1' AND parametry.wartosc_paramteru='Windows XP' AND parametry.id_paramteru='2' AND parametry.wartosc_paramteru='Asus' "


zobacz czy działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
starcode
post
Post #3





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

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


Cytat(Spawnm @ 23.03.2009, 10:02:06 ) *
no to to chyba by było tak:

  1. SELECT produkty.nazwa FROM produkty, parametry WHERE produkty.id=parametry.id_produktu AND parametry.id_paramteru='1' AND parametry.wartosc_paramteru='Windows XP' AND parametry.id_paramteru='2' AND parametry.wartosc_paramteru='Asus' "


zobacz czy działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Nie ma szans na działanie.

W tym wypadku próbujesz pobrać rekord który zarazem id_paramteru ma równe 2 i jeden, a wartosc_paramteru jest zarazem równa Asus jak i Windows XP. OR tutaj nic nie zmiania, ponieważ zwrócone zostaną zarówno produkty z Windows XP i Acerem jak i z Windowsem Vista i Asusem.
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: 14.10.2025 - 10:16