Forum Moderators: coopster
SELECT
p.id, p.name, p.range_name, p.manufacturer
FROM `attributes_entity` `ae`
INNER JOIN `products` `p` ON `ae`.`product_id`=`p`.`id`
INNER JOIN `attributes` `a` ON `ae`.`attribute_id`=`a`.`id`
INNER JOIN `attributes_values` `av` ON `ae`.`value_id`=`av`.`id`
WHERE `p`.`visible`='1'
AND (`a`.`name`='colour' AND `av`.`value`='dark wood') OR (`a`.`name`='material' AND `av`.`value`='oak') OR (`a`.`name`='range' AND `av`.`value`='ruby') (`a`.`name`='colour' AND `av`.`value`='dark wood')
(`a`.`name`='material' AND `av`.`value`='oak') $colour = $_REQUEST['colour'];
$material = $_REQUEST['material']; $string = $_SERVER['QUERY_STRING'];
$array=array();
parse_str($string,$array);
$array_num = count($array);
$query_filter = '';
forEach($array as $key => $value) {
$value = str_replace('_', ' ', $value);
$key = str_replace('_', ' ', $key);
$query_filter .= "(`a`.`name`='$value' AND `av`.`value`='$key')";
if ($array_num > '1'){
$query_filter .= " OR ";
}
$array_num--;
}
ive swapped round the key and value frompage.php?colour=dark+wood&material=oak
topage.php?dark+wood=colour&oak=material
as if the user wanted so view 'light wood' AND 'dark wood' at the same time is was only showing the last value of the colour key.
page.php?colour[]=dark+wood&colour[]=blue