Выборка товаров по дополнительному свойству типа флажок

#
Выборка товаров по дополнительному свойству типа флажок
Нужно сделать выборку товаров если доп. свойство флажок у них = 1.
Есть код, впринципе валидный но xml вывод пуст.. Что тут не так?
if (Core::moduleIsActive('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show(
Core_Entity::factory('Shop', 1)
);
$Shop_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('МагазинКаталогТоваровНаГлавнойСпецПред')
)
->groupsMode('none')
//->itemsForbiddenTags  (array  ('text'))
->group(FALSE)
->itemsProperties(TRUE)
->limit(2);

// Объединение с нужной таблицей свойств
$Shop_Controller_Show
->ShopItems()
->queryBuilder()
->leftJoin('shop_item_properties', 'shop_items.shop_id', '=',
'shop_item_properties.shop_id')
->leftJoin('property_value_ints', 'shop_items.id', '=',
'property_value_ints.entity_id',
array(
array('AND' => array('shop_item_properties.property_id', '=',
Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
)
)
// Идентификатор дополнительного свойства
->where  ('shop_item_properties.property_id', '=', 61)
// Значание дополнительного свойства
->where  ('property_value_ints.value', '=', '1')
->groupBy  ('shop_items.id')
// Количество свойств
->having  ('COUNT  (shop_item_properties.shop_id)', '=', 1);

$Shop_Controller_Show->show();
}
Модератор
#
Re: Выборка товаров по дополнительному свойству типа флажок
juja256,
1. HAVING неправильный
->having(Core_Querybuilder::expression('COUNT(DISTINCT `shop_item_properties`.`property_id`)'), '=', 1)


http://www.hostcms.ru/forums/2/7122/

2. Уверены, что св-во имеет целочисленный тип?
#
Re: Выборка товаров по дополнительному свойству типа флажок
Тоже столкнулся с проблемой, есть вывод товаров с активным чекбоксом
      $Shop_Controller_Show = new Shop_Controller_Show(
         Core_Entity::factory('Shop', 2)
      );

      $Shop_Controller_Show
         ->xsl(
            Core_Entity::factory('Xsl')->getByName('МагазинКаталогТоваров на главной')
         )
         ->group(FALSE)
         ->limit(30)
         //->itemsProperties(TRUE)
         //->show()
         ;
      $Shop_Controller_Show
         ->shopItems()
         ->queryBuilder()
         ->leftJoin('shop_item_properties', 'shop_items.shop_id', '=', 'shop_item_properties.shop_id')
         ->leftJoin('property_value_ints', 'shop_items.id', '=', 'property_value_ints.entity_id',
         array(
            array('AND' => array('shop_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
         )
         )
         // Идентификатор дополнительного свойства
         ->where('shop_item_properties.property_id', '=', 74)
         // Значание дополнительного свойства
         ->where('property_value_ints.value', '=', '1')
         ->groupBy('shop_items.shop_id')
         // Количество свойств
         ->having(Core_Querybuilder::expression('COUNT(DISTINCT `shop_item_properties`.`property_id`)'), '=', 1)
         ;
      $Shop_Controller_Show->show();

проставляю товарам активный чекбокс, вывод идёт только 1 товара, хотя ->limit(30) , подскажите в чем косяк
skype: mcross82
Модератор
#
Re: Выборка товаров по дополнительному свойству типа флажок
Mcross,
откуда
->groupBy('shop_items.shop_id')
? Пожалуйста, внимательно смотрите на примеры http://www.hostcms.ru/forums/2/7122/
#
Re: Re: Выборка товаров по дополнительному свойству типа флажок
Исправил, всё заработало как надо)
Спасибо.
skype: mcross82
Модератор
#
Re: Выборка товаров по дополнительному свойству типа флажок
Mcross,
Пожалуйста
Авторизация