Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Поиск по не целым числам

00 голосов
5
А не подскажите почему у меня может не работать фильтр на цифры типа 0.32?
У меня есть фильтр на поиск... скажем массы.
так вот когда я ввожу целые, всё нормально, а вот с дробными - проблемма...
спросил 11 Ноя, 13 от JIapro (180 баллов)

5 Ответы

00 голосов
Потому что эти значения хранятся в базе в виде строки.
ответил 22 Дек, 13 от Ly (4,580 баллов)
00 голосов
Ну вообще значения стоят числовые, то есть даже поиск в фильтре выдает не просто строку, а диапазон значений.
ответил 06 Апр, 14 от JIapro (180 баллов)
00 голосов
Может надо чего в коде изменить? или где?
ответил 30 Июль, 14 от JIapro (180 баллов)
00 голосов
Это надо разбираться, по какому из полей (VALUE или VALUE_NUM) таблицы b_iblock_element_property идёт поиск в вашем случае.

Попробуйте обратиться в техподдержку.
ответил 02 Дек, 14 от Ly (4,580 баллов)
00 голосов
Цитата
ksuhanov пишет:
Может надо чего в коде изменить? или где?


Быстрое решение найдено!

Компонент фильтра возможно содержит ошибку из за которой меньшее число задающее диапазон поиска по значениям округляется.

Открываем файл компонента
/bitrix/components/bitrix/catalog.filter/component.php

Заменяем 515 строку:
Код
${$FILTER_NAME}["PROPERTY"][">=".$arProp["CODE"]] = intval($value);

на
Код
${$FILTER_NAME}["PROPERTY"][">=".$arProp["CODE"]] = doubleval($value);


Проследить изменения после правки можно предварительно добавив на страницу код после компонента фильтра
Код
<pre>arrFilter = <?php print_r($arrFilter);?></pre>

smile;)
ответил 27 Март, 15 от Shikira (100 баллов)

Похожие вопросы

0 голосов
2 ответов
0 голосов
1 ответ
0 голосов
3 ответов
спросил 05 Сен, 13 от Mexx (140 баллов)
0 голосов
8 ответов
спросил 27 Май, 13 от Xsana (240 баллов)
0 голосов
1 ответ
спросил 20 Июль, 15 от Rattlesneyk (140 баллов)