при фильтрации считает что число 900 000, больше чем 5 500 000, так как начинается с 9 а число 54 000 000 будет считать меньше как привести поле к формату числа и отфильтровать выборку
// обрезаем поле //print_r(explode('|', $str, -1));
//Запись результатов вызова инструмента в таблицу для отчета $DB->PrepareFields("b_crm_relevant_search"); $arFields = array( "deal_id" => $_POST['deal_id'], "user_id" => $USER->GetID(), "search_date" => $DB->GetNowFunction(), "result_count" => $count, "search_params" => "'".$_POST['params']."'" ); $DB->StartTransaction(); $ID = $DB->Insert("b_crm_relevant_search", $arFields, $err_mess.__LINE__); if (strlen($strError)<=0){ $DB->Commit();
}else { $DB->Rollback(); echo "Ошибка записи результатов поиска, сообщите одминистратору системы!<br>"; } //-----------------------------------------------------------//
$currentUserCount = $DB->Query("sel ect * fr om b_crm_relevant_search where deal_id=".$_POST['deal_id']." AND user_id=".$USER->GetID())->SelectedRowsCount(); $allUsersCount = $DB->Query("select * fr om b_crm_relevant_search wh ere deal_id=".$_POST['deal_id'])->SelectedRowsCount(); //Вывод статистики использования инструмента echo "Запрос по встречным заявкам текущий пользователь произвел ".$currentUserCount." раз. Всего запросов по заявке ".$allUsersCount."<br><br>";
$rows = 20; $pages = ($count % $rows)?intval($count/$rows)+1:$count/$rows; if ($count == 0) echo "<h2>По заданным параметрам ничего не найдено!</h2>"; for ($i=1;$i<=$pages;$i++){//Цикл по страницам ?>
Андрей Черкасов написал: если применить number_format он с ним работает корректно но уже при выводе в таблицу на момент фильтра сразу теряет поле
1) Что у вас в элементе записано? Потому как в таблице я вижу и правильные значения "970000|RUB" и неправильные "950000". Формат в базе всегда должен быть: Сумма + | + код валюты 2) Ни при записе в базу, ни при ее фильтрации number_format не должен использоваться, иначе фильтрация работать НЕ БУДЕТ! 3) Попробуйте воспользоваться CCrmDeal::GetListEx
1) Что у вас в элементе записано? Потому как в таблице я вижу и правильные значения "970000|RUB" и неправильные "950000". это потому-что данные перенесли из числового поля не учли валюту, но поля с правильным занесением то же не фильтруются, попробую CCrmDeal::GetListEx вместо CCrmDeal::GetList