@Anton2022
...

Есть ли в getImageList (MIGX) синтаксис выборки уникальных значений полей, как DISTINCT у MySql?

Добрый день!
Создана таблица в TV MIGX где перечислены цвета. Цвета могут повторяться, но вывести нужно список цветов без повторений.
Вывожу так:
<ul>
    [[getImageList?
  &tvname=`gallery`
  &docid=`12`
  &tpl=`@CODE: <li[[+color]]</li>`
  &where = `{"color:=":"Красный"}`
]]</ul>

и естественно выводится слово Красный столько раз, сколько оно использовано в таблице. А нужно только 1 раз.
Можно ли как-то элегантно, без доп. сниппетов составить запрос?
Спасибо!
  • Вопрос задан
  • 1033 просмотра
Решения вопроса 1
qork
@qork
{ background: #F00B42 }
Можно допилить сниппет getImageList
Пример:
Кусок из ~166 строки
// where filter
if (is_array($where) && count($where) > 0) {
    $items = $migx->filterItems($where, $items);
    if($splice) array_splice($items, $splice); //добавляем эту строку
}


Вызов сниппета будет таким:
[[getImageList? 
	&tvname=`gallery`
        &docid=`12`
        &tpl=`@CODE: <li[[+color]]</li>`
        &where = `{"color:=":"Красный"}`
        &splice=`1`
]]

В параметре splice указывается количество выводимых первых элементов из выборки.
Если надо выводить последний элемент выборки, то передаем splice вторым параметром в функцию array_splice.
php.net/manual/ru/function.array-splice.php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы