Объединение в условии where IN для msproducts
        Подскажите пожалуйста, где ошибка?:
Для сниппета msProducts задаю условие where
Added where condition: class_key=msProduct, vendor.id:IN(3,2)
В запросе получается
WHERE ( `msProduct`.`class_key` = 'msProduct'AND `vendor`.`id` IN (3) AND isfolder=0 AND `msProduct`.`parent` IN (22,35,38,39,40,41) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 ) GROUP BY msProduct.id ORDER BY msProduct.pagetitle asc LIMIT 3 „
Или может кто знает, как в условии where вместо оператора AND что бы подставлялся OR?
    
    
                                                                                
            Для сниппета msProducts задаю условие where
if(!empty($_GET['brands'])) {
	$brs = array();
	$brs = implode(',',$_GET['brands']);
	$filter[] = array('vendor.id:IN' => array($brs));
	
}
$where = $modx->toJSON($filter);И он выводит только по одному бренду, хотя в условии содержится Added where condition: class_key=msProduct, vendor.id:IN(3,2)
В запросе получается
WHERE ( `msProduct`.`class_key` = 'msProduct'AND `vendor`.`id` IN (3) AND isfolder=0 AND `msProduct`.`parent` IN (22,35,38,39,40,41) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 ) GROUP BY msProduct.id ORDER BY msProduct.pagetitle asc LIMIT 3 „
Или может кто знает, как в условии where вместо оператора AND что бы подставлялся OR?
Комментарии: 2
                $_GET['brands'] — это точно массив? Есть предположение что у вас на входе только последнее значение с ID бренда.            
                    
                В $_GET['brands'] все нормально. я же писал — 
Получилось решить так —
а то я вывожу фильтр
а надо pdopage использовать внутри filter, что бы пагинация при ajax работала. (Хоть и не уверен, пока,
что будет работать), но у меня там появляется кнопка «Загрузить еще» и она отлично работает, так, что пагинация и не нужна
                    Added where condition: class_key=msProduct, vendor.id:IN(3,2)Я так понял неправильно работает $modx->toJson, т.е. из массива array(1,2) он создает [{«1,2»}] а надо [{«1»,«2»}].
Получилось решить так —
if(!empty($_POST['brands'])) {
	foreach($_POST['brands'] as $brand)
	{
		if($brand > 0) 
		  $brs .=  '"'. $brand.'"'  . ',';
	}
	$brs=substr($brs, 0, -1);
}
$brandsStr  = strlen($brs) ? '[{"Vendor.id:IN":['. $brs  . ']}]' : '';а потом уже в $where добавлятьif($brandsStr && $where)  $newwhere = '['. $brandsStr . ',' . $where . ']';
if($brandsStr && !$where)  $newwhere = '['. $brandsStr  . ']';
else $newwhere = $where;Кстати неплохой, легкий ajax фильтр получился, теперь только с пагинацией разобраться осталось,а то я вывожу фильтр
[[!pdoPage? &element=`filter` 
				&tpl=`productsgridTpl` 
				&limit=`3` 
				&parents=`[[*id]]`
				]] а надо pdopage использовать внутри filter, что бы пагинация при ajax работала. (Хоть и не уверен, пока,
что будет работать), но у меня там появляется кнопка «Загрузить еще» и она отлично работает, так, что пагинация и не нужна
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.