![]() |
![]() |
![]() ![]()
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 18.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz podać przykładowe zapytanie?
Graficznie struktura tabeli wygląda tak: tabela nazwy_parametrow Kod +-------+---------------------+ | id | nazwa_paramteru | +-------+---------------------+ | 1 | system operacyjny | +-------+---------------------+ | 2 | producent | +-------+---------------------+ | 3 | procesor | +-------+---------------------+ | 4 | przekatna matrycy | +-------+---------------------+ tabela parametry (łączy wartosci paramterów z nazwami paramterow i przypisuje do konkretnego produktu) Kod +----------------+----------------+------------------------------+ | id_paramteru | id_produktu | wartosc_paramteru | +----------------+----------------+------------------------------+ | 1 | 20 | Windows XP | +----------------+----------------+------------------------------+ | 1 | 21 | Windows XP | +----------------+----------------+------------------------------+ | 1 | 22 | Windows Vista | +----------------+----------------+------------------------------+ | 1 | 23 | Windows XP | +----------------+----------------+------------------------------+ | 1 | 24 | Brak systemu | +----------------+----------------+------------------------------+ | 2 | 20 | Asus | +----------------+----------------+------------------------------+ | 2 | 21 | Acer | +----------------+----------------+------------------------------+ | 2 | 22 | Asus | +----------------+----------------+------------------------------+ | 2 | 23 | Asus | +----------------+----------------+------------------------------+ | 2 | 24 | Asus | +----------------+----------------+------------------------------+ I chcę pobrać produkty, które mają: (`id_paramteru`='1' AND `wartosc_paramteru`='Windows XP') AND (`id_paramteru`='2' AND `wartosc_paramteru`='Asus') Powinno zwrócić rekordy (produkty) o `id_produktu: 20 i 23. Oczywiście istnieje jeszcze tabela produkt, która ma ID i owo ID jest wpisane w tabeli `parametry` w polu `id_produktu` Ten post edytował starcode 22.03.2009, 21:46:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 10:20 |