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

Выбор уникальных значений по NAME

00 голосов
7
Здравствуйте. Появился вопросик: как выбрать только уникальные элементы инфоблока по параметру "NAME"? установка группировки по эту параметру "режет" все остальные выбираемые параметры, оставляя лишь "NAME", "CNT"...
Конкретно, меняю логику компанента catalog.section
В целом-то необходимо чтобы элементы выбрались с DISTINCT(NAME) а вот как правильно сделать фильт, что-то ну никак =(

Может кто уже сталкивался?! Подскажите плз.
спросил 04 Авг, 13 от Aythis (740 баллов)

7 Ответы

00 голосов
Код
$arFilter = array(
      "NAME" => "Имя 1",
            );
ответил 13 Янв, 13 от Lekar (2,220 баллов)
показан 16 Ноя, 13 от root
00 голосов
:D Ну это вариант, согласен, но так я вывожу кучу элементов из определенного инфоблока и определнной секции, и у меня выводится скажем 5шт - "Имя 1", 3шт - "Имя 2", 7шт - "Имя 3" - итого 15 элементов, а вот хотелосьбы вывести только 3! Всего 3, 1шт - "Имя 1", 1шт - "Имя 2", 1шт - "Имя 3", а вот уже в детальном просмотре сделаю линки на похожие элементы.
Т.е. на самом деле это товары имеющие одинаковое ИМЯ, но разных производителей и соответственно заведены как разные записи, хотя внутри у каждого из товаров указаны в свойствах другие производители... ВОт такая вот замарочка...
ответил 13 Янв, 13 от Aythis (740 баллов)
показан 16 Ноя, 13 от root
00 голосов
Тогда работайте с массивом... который получится с этой выборки.
ответил 13 Янв, 13 от Lekar (2,220 баллов)
показан 16 Ноя, 13 от root
00 голосов
Массив обрабатываем примерно так :

1) Группируем выборку по имени
2) В качестве ключа массива, делаем название 1 первого элемента в группе
3) получается массив вида... :

array(
'имя 1' array(
[0] => 1 элемент
[1] => 2 элемент
...
'имя 2' array(
[0] => 1 элемент
[1] => 2 элемент
...

потом можно взять только 1 элемент и все...


Конечно решение не супер... но как вариант к рассмотрению думаю пойдет =)
ответил 13 Янв, 13 от Lekar (2,220 баллов)
показан 16 Ноя, 13 от root
00 голосов
Сделал по-другому =)
1. Добавил св-во "Основной" в ИБ, с параметрами "Y", "N"
2. Изменил компонент, вставив в фильтр возможность выбора по определнному св-ву.
и соответственно получается что, например, из 10 эл-тов с одинаковым названием у 9 св-во "Основной" в "N", а у 1 в "Y" - все =)
ответил 13 Янв, 13 от Aythis (740 баллов)
показан 16 Ноя, 13 от root
00 голосов
А какой у вас признак уникальности?
ответил 04 Авг, 13 от Lekar (2,220 баллов)
00 голосов
Цитата
Рамиль Юналиев пишет:
А какой у вас признак уникальности?

Именно имя, "NAME", т.е. есть N-элементов с разными ID, но одинаковым NAME (названием элемента), т.е.
ID=101, NAME="Имя 1"
ID=201, NAME="Имя 1"
ID=333, NAME="Имя 1"

и мне нужно показать только 1 элемент.
ответил 04 Окт, 13 от Aythis (740 баллов) 1 отметил
ЕСТЬ РЕШЕНИЕ?

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

0 голосов
4 ответов
спросил 20 Янв, 14 от Snezhka (2,240 баллов)
0 голосов
5 ответов
спросил 07 Дек, 13 от Snezhka (2,240 баллов)
0 голосов
3 ответов
0 голосов
9 ответов
0 голосов
1 ответ
спросил 22 Фев, 14 от katena (280 баллов)