HostCMS, посмотрел темы по ссылкам, которые Вы дали. У меня получилось сделать фильтр по логике "ИЛИ":
$element = array();
$element['type'] = 1;
$element['prefix'] = ' AND ';//(
$element['property_id'] = 28;
$element['if'] = '=';
$element['value'] = "поршень";
$element['sufix'] = '';
$param['select'][] = $element;
$element['type'] = 1;
$element['prefix'] = ' OR ';
$element['property_id'] = 24;
$element['if'] = '=';
$element['value'] = "F22B";
$count_condition = 2;
$having_count = ' HAVING COUNT(shop_item_properties.property_id)= ' . $count_condition;
$element['sql_having'] = $having_count;
$param['select'][] = $element;
$shop->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
При этом наличие HAVING COUNT никак не влияет на результат. Проблема в том, что мне нужен фильтр "И". Пытался использовать вот такой код:
$element = array();
$element['type'] = 1;
$element['prefix'] = ' AND ';//(
$element['property_id'] = 28;
$element['if'] = '=';
$element['value'] = "поршень";
$element['sufix'] = '';
$param['select'][] = $element;
$element['type'] = 1;
$element['prefix'] = ' AND ';
$element['property_id'] = 24;
$element['if'] = '=';
$element['value'] = "F22B";
$count_condition = 2;
$having_count = ' HAVING COUNT(shop_item_properties.property_id)= ' . $count_condition;
$element['sql_having'] = $having_count;
$param['select'][] = $element;
$shop->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
И всегда получаю пустой результат. Естественно, данные я проверил - должны быть строки, удовлетворяющие условиям.
До обновления до 6 версии уже был реализован фильтр и он прекрасно работал. Но после обновления именно фильтр перестал работать. Может быть это связано с изменением структуры БД