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

Фильтр элементов инфоблока по наименованию и получение характеристик элемента

00 голосов
8
Всем добрый день
Помогите разобраться, как отобрать элементы каталога товаров по наименованию, ЕСЛИ в наименовании содержаься кавычки? например телевизор рубин спокойно выбирается функцией getlist, а вот уже телевизор "рубин".. вот тут начинаются проблемы.

и еще очень важный для меня вопрос, как по ID элемента получить все его свой свойства, включая массив характеристик?

Надеюсь на поддержку, а то в ступоре :(
спросил 26 Апр, 13 от Daeno (520 баллов)

8 Ответы

00 голосов
ну самое простое решение это писать все элементы списка без кавычек... Ну еще что я предполагаю возможным это создать свою функцию отсева на основе getlist .
Честно getlist не пользовался. но есть насколько я помню такая функция в пхп как strpos которая находит подстроки в строке. в прицнипе получая наименование товара можно с помощью нее проверять есть ли там этот самый рубин или его нету в подстроках наименования. Единственная проблема если там вдруг будет РУБИНовый то я даже не знаю как она себя поведет скорее всего выведет так же и этот РУБИНовый.
ну это так решение которое сразу в голову пришло его еще стоит отшлефовать)
ответил 26 Апр, 13 от Velmont (180 баллов)
00 голосов
ну то что элементы без кавычек писат, это действительно было бы приятным... но товар выгружается из 1С с теми названиями, которые там ((
ответил 27 Апр, 13 от Daeno (520 баллов)
00 голосов
Цитата
Сергей Куликов пишет:
и еще очень важный для меня вопрос, как по ID элемента получить все его свой свойства, включая массив характеристик?

Код
$rsItems = CIBlockElement::GetByID(ваш ID);
if ($obItem = $rsItems->GetNextElement):
   $arItem = $obItem->GetFields(); //стандартные поля
   $arProps = $obItem->GetProperties(); // все пользовательские поля
endif;

Цитата
Никита Пимошенко пишет:
ну самое простое решение это писать все элементы списка без кавычек... Ну еще что я предполагаю возможным это создать свою функцию отсева на основе getlist .

Успехов Вам на инфоблоке с хотя бы 1000 записей.
Цитата
Сергей Куликов пишет:
Помогите разобраться, как отобрать элементы каталога товаров по наименованию, ЕСЛИ в наименовании содержаься кавычки? например телевизор рубин спокойно выбирается функцией getlist, а вот уже телевизор "рубин".. вот тут начинаются проблемы.

Посмотрите, как кавычки у вас в базе хранятся. После этого можно подумать.
ответил 23 Июнь, 13 от Pomnep (13,960 баллов)
00 голосов
ну тогда strpos вам поможет. Надеюсь там нету тедевизоров "рубин" и одновременно "рубиновых подсвешников" =) Хотя и эту проблему можно решить сделав выборку по разделам я думаю=)
ответил 27 Сен, 13 от Velmont (180 баллов)
00 голосов
Спасибо, надо будет попробовать с характеристиками.
Цитата
Евгений Жуков пишет:
Посмотрите, как кавычки у вас в базе хранятся. После этого можно подумать.


вопрос, а где это посмотреть, точнее немного не понятно, что нужно сделать
ответил 27 Дек, 13 от Daeno (520 баллов)
00 голосов
Цитата
Евгений Жуков пишет:


Успехов Вам на инфоблоке с хотя бы 1000 записей.

Ну в общем то никогда не думал что функции выборки важно количество элементов в массиве. Полагаю оно важнее для ее быстродействия нежели для ее функциональности. К тому же я говорю первое что в голову пришло) все же я не заявлял что мои слова панацея
ответил 13 Апр, 14 от Velmont (180 баллов)
00 голосов
Цитата
Никита Пимошенко пишет:
Ну в общем то никогда не думал что функции выборки важно количество элементов в массиве. Полагаю оно важнее для ее быстродействия нежели для ее функциональности. К тому же я говорю первое что в голову пришло) все же я не заявлял что мои слова панацея

По принципу "сказал, а потом подумал"? А для функции выборки - да, важно. Потому что по Вашему алгоритму надо выбрать все, а потом перебирать. Скрипт умрет.
ответил 06 Авг, 14 от Pomnep (13,960 баллов)
00 голосов
Прошу простить мою спесь. Молодость горячность берет свое.
ответил 09 Дек, 14 от Velmont (180 баллов)

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

0 голосов
2 ответов
спросил 13 Июль, 13 от Asteria (1,840 баллов)
0 голосов
3 ответов
спросил 02 Апр, 14 от ROKKI (160 баллов)
0 голосов
6 ответов
0 голосов
7 ответов
0 голосов
7 ответов
спросил 06 Июль, 13 от Aypuka (340 баллов)