Jestem raczej poczatkujący w mysql.
Mam mały problem:
Mam tabele w której mam pola id_produkt i id_atrybut.
W której przypisuje do produktu atrybut. Każdy produkt może mieć kilka atrybutów.
czyli id_produkt może wystąpić kilkukrotnie.
Teraz na podstawie zaznaczonych w wyszukiwarce opcji (atrybutow) chciałbym wybrac odpowiednie id_produktu spełniające wszystkie zaznaczone założenia.
I tutaj pojawia się problem;/
z formularza dostaje tablice $atrybuty
rozbijam ją na stringa
$atr = implode(", ", $atrybuty);
probowałem tak ():
SELECT id_produkt FROM produkt_atrybut WHERE id_atrybut = ALL ($atr) GROUP BY id_produkt;
ale baza zwraca bład przy ALL na próbę probowałem ANY ale ten sam bład. Tak jak by w nawias nie można było wsadzić cyfr tylko podzapytanie.
Probowałem też przerobić to zapytanie:
$podzapytanie = "SELECT id_produkt "; $podzapytanie .= "FROM produkt_atrybut "; $podzapytanie .= "WHERE "; foreach ($atrybuty as $row) { $podzapytanie .= "id_atrybut = '".$row."' AND "; } $podzapytanie .= " GROUP BY id_produkt "; $podzapytanie .= ";";
Ale Z AND nie daje wyników dla więcej niz jednej opcji a z OR nie filtruje wystarczjąco.
Będę wdzięczny za jakąś podpowiedź.