Salut, incerc sa fac un filter pentru produse in laravel, si m-am blocat la partea cu sql.
Tabel e_products
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL
..
Tabel e_products_attributes
`id` int(11) NOT NULL auto_increment,
`product_id` int(11) NOT NULL
`variable` int(11) NOT NULL
Tabel e_attributes
`id` int(11) NOT NULL auto_increment,
`variable` int(11) NOT NULL
`label` varchar(255) NOT NULL
PHP
$variables = array(41, 2, 4, 6);
$rr = count($variables);
$list = implode(',', $variables);
$objects = DB::select('SELECT
o.id,
o.title,
o.slug,
o.images_host,
o.regular_price
FROM
e_products o INNER JOIN e_products_attributes oa ON o.id = oa.product_id AND oa.variable IN ('.$list.')
GROUP BY o.id
HAVING COUNT(oa.variable) >= '.$rr);
variable 41 = Samsung
variable 2 = Philips
variable 4 = 22 inch
variable 6 = 24 inch
Problema este in felul urmator: Daca in $list se afla variable 41,6 rezultatele sunt corecte, dar daca selectez doar 41,2 imi da rezultate 0, cea ce nu pot sa inteleg este faptul ca fiecare attribute are un id dar filtreaza doar brand si inch.
e_products_attributes arata cam asa:
id product_id variable
1 400 41
2 400 6
3 450 41
4 451 2
Deci daca selectez variable 41 trebuie sa afiseze toate produsele cu acest attribute, dar daca selectez 41,6 trebuie sa afiseze doar product_id 400
Stie cineva unde gresesc ?
Multumesc