Здравствуйте,
Сделал ИС "Новости и акции", в которую в доп свойства добавил два поля - "Дата начала акции"(27) и "Дата окончания акции"(28).
Добавил календарик, который передает даты гетом следующим образом - ?data=2012-09-03
Через календарик нужно сделать фильтрацию элементов таким образом, при выборе даты выдавались элементы за выбранную дату, а также элементы у которых дата начала акции и окончания соответствовала выбранной...
С выводом элементов за текущую дату я разобрался, а вот элементы, попадающие в промежуток "от" "до", не выводятся, хотя сделал вроде всё по примерам.
Ниже код для ТДС:
if (isset($_GET['data']))
{
$GLOBALS['INFSYS_result']['group'] = false;
$property=array();
$property['xml_show_group_type'] = 'all';
$property['xml_show_group_property'] = true;
$data = to_str(mysql_escape_string(trim($_GET['data'])));
$count_condition = 2;
$having_count= ' HAVING COUNT(information_propertys_items_table.information_propertys_items_id)= '.$count_condition;
$element['type'] = 0;
$element['name'] = 'information_items_date';
$element['prefix'] = ' and ';
$element['if'] = ' REGEXP ';
$element['value'] = $data;
$element['sufix'] = '';
$property['select'][] = $element;
$element['type'] = 1;
$element['property_id'] = 27;
$element['prefix'] = ' or (';
$element['if'] = '>=';
$element['value'] = $data;
$element['sufix'] = '';
$property['select'][] = $element;
$element['type'] = 1;
$element['property_id'] = 28;
$element['prefix'] = ' and ';
$element['if'] = '<=';
$element['value'] = $data;
$element['sufix']=' ) GROUP BY information_propertys_items_table.information_items_id '.$having_count;
$property['select'][] = $element;
$external_propertys['filter'] = '1';
}
Подскажите, в чем может быть проблема?
Также в одном из примеров нашел другое решение,
if (isset($_GET['data']))
{
$GLOBALS['INFSYS_result']['group'] = false;
$property=array();
$property['xml_show_group_type'] = 'all';
$property['xml_show_group_property'] = true;
$data = to_str(mysql_escape_string(trim($_GET['data'])));
$element['type'] = 0;
$element['name'] = 'information_items_date';
$element['prefix'] = ' and ';
$element['if'] = ' REGEXP ';
$element['value'] = $data;
$element['sufix'] = '';
$property['select'][] = $element;
$element['type'] = 0;
$element['name'] = 'information_items_table.information_systems_id';
$element['prefix'] = ' or (';
$element['if'] = '=';
$element['value'] = '15';
$element['sufix'] = "AND (information_propertys_items_table.information_propertys_id=27
AND CONVERT(information_propertys_items_table.information_propertys_items_value, UNSIGNED) >= $data
AND information_propertys_items_table.information_propertys_id=28
AND CONVERT(information_propertys_items_table.information_propertys_items_value, UNSIGNED) <= $data
))";
$property['select'][] = $element;
$external_propertys['filter'] = '1';
}
но оно выдает ошибку: Ошибка выполнения запроса! - Unknown column 'information_propertys_items_table.information_propertys_id' in 'where clause'