Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.

#
Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
Столкнулся с такой проблемой - надо выбрать один элемент из группы и вложенных. Делаю так:


$InformationSystem = new InformationSystem();
$external_propertys=array();
$property=array();
$element['type'] = 0;
$element['prefix'] = ' AND ';
$element['name'] = 'information_groups_id';
$element['if'] = 'IN';
$element['value'] = '(52,74,75,76)';
$element['sufix'] = '';
$property['select'][] = $element;

$property['OrderField'] = 'RAND()';
$InformationSystem->ShowInformationSystem(17,
            52,'СлучайноеОбъявление',1,0,
            $external_propertys, $property);

Появляется ошибка в запросе. Объясните пожалуйста как использовать условие IN в запросе, либо подскажите какой-нибудь другой способ это сделать.
Модератор
#
Re: Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
Arkadiy,
текст ошибки приведите.
#
Re: Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
Цитата:

Ошибка выполнения запроса! - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''(52,74,75,76)' ORDER BY RAND() ASC LIMIT 0, 1' at line 19
Предупреждение: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource в файле Z:\home\zemdoma.ru\www\modules\InformationSystems\InformationSystems.class.php (строка 8141)
#
Re: Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
Ну что? есть какие-нибудь мысли? Там ошибка в том, что вместо IN (51,52,53) пишет IN '(51,52,53)'
#
Re: Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
По хорошему, чтобы не извращаться, надо добавить функции дополнительный параметр, определяющий выводить из вложенных категорий или только из указанной категории, и делать выборку в соответствии с установленным параметром уже в функции.
Сейчас мне это не горит, сделал на php и html, но хотелось-бы сделать правильно когда-нибудь.
Модератор
#
Re: Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
Замените if и value на эти:
$element['if'] = 'IN (52,74,75,76)';
$element['value'] = '';
#
Re: Вывести элемент из одной информационной системы с ограничением информационной группой и вложенными группами.
Спасибо за подсказку. Решил более правильно:

                //вычисляем све подгруппы
                $InformationSystem = & singleton('InformationSystem');
                $param = array();
                $param['information_system_id'] = 17;
                $param['groups_parent_id'] = $groups_parent_id[$i];
                $param['groups_activity'] = 1;
                $groups = $InformationSystem->GetAllInformationGroups($param);

                $array_ids = array();
                foreach($groups as $key=>$val) {
                    $array_ids[] = $key;
                }

                /* Вывод случайного объявления */
                $InformationSystem = & singleton('InformationSystem');
                $property = array();
                $external_propertys=array();
                $item_count = 1;
                $InformationSystemId = 17;
                $information_groups_id = $groups_parent_id[$i];  //  - из всех групп, 0 - из корневой группы
                $property['show_group'] = $array_ids;
                $property['OrderField'] = 'RAND()';
                $InformationSystem->ShowInformationSystem($InformationSystemId, $information_groups_id,'СлучайноеОбъявление',$item_count,0,$external_propertys,$property);
Авторизация