Pobranie rekordów z bazy z określonej kategorii


(Aglasek) #1

Witam,

Nie wiem czy pisze w dobrym dziale ale spróbuje.

Mam w tabeli bazy danych np takie kolumny: id_cat oraz id_product

Jak pobrać wszystkie rekordy z bazy danych gdzie dany produkt występuje w każdej kategorii a jeżeli nie występuje w chociażby jednej kategorii to go pomiń.

$query = db->query("SELECT * FROM `tabela` WHERE id_cat = '100' OR id_cat = '101' OR id_cat = '221' GROUP BY `id_product`");    


if($query){

    foreach ($query as $row) {

        if(strstr($pusch_product, $row['id_product']) !== FALSE){

                 //

        }

        $pusch_product .= $row['id_product'].',';

    }

}

(ra-v) #2
SELECT * FROM `tabela` WHERE id_cat = '100' AND id_cat = '101' AND id_cat = '221' GROUP BY `id_product`

??


(Aglasek) #3

Próbowałem tak ale wtedy nie zwraca nic, zero rekordów a mam dwa produkty które występują w każdej kategorii


(R@z0r) #4

Coś mieszasz, bo zapytanie ra-v jest dobre. Pokarz db.


(Aglasek) #5

Raczej nie jest dobre bo id_cat sie wykluczają.

Mam dwie kolumny:

id_cat id_product

4 --------- 144

5 ---------222

4 --------- 98

4 --------- 88

5 --------- 98

5 --------- 144

Powinno pokazac tylko rekord z id_product 98 oraz 144


(adpawl) #6

W oznaczone miejsce wpisujesz liczbę kategorii.

Pewnie można lepiej, ładniej i bardziej optymalnie ...ale złapałem lenia. :stuck_out_tongue: