Выбрать все уникальные значения опций по ключу

Добрый день!
Пытаюсь сделать свой фильтр товаров для Minishop2. Мне нужно получить массив всех возможных опций по ключу key из таблицы modx_ms2_product_options. Подскажите, пожалуйста, как составить правильный запрос.
Александр Суркин
30 марта 2017, 12:01
modx.pro
2 151
0

Комментарии: 9

Александр Суркин
30 марта 2017, 17:26
0
Скрин таблицы бд:
file.modx.pro/files/d/2/9/d29a89ceada49befd46625734bc0ba0f.jpg

Если пишу так то работает:
$arr_ids = $modx->getChildIds($parents,1,array('context' => 'web'));
$ids = implode(',', $arr_ids);
$sql = «SELECT DISTINCT * FROM dortone_ms2_product_options WHERE product_id IN ($ids)»;

А так уже нет:
$sql = «SELECT DISTINCT * FROM dortone_ms2_product_options WHERE product_id IN ($ids) AND key = 'carry'»;

Подскажите, почему при добавлении AND key = 'carry' перестает работать.
    tools
    30 марта 2017, 18:30
    0
    какие ids в запросе перечислены?
      Александр Суркин
      30 марта 2017, 19:42
      0
      $arr_ids = $modx->getChildIds($parents,1,array('context' => 'web'));
      $ids = implode(',', $arr_ids);

      Берутся все дочерние ресурсы определенной категории.
        tools
        30 марта 2017, 19:49
        0
        я имел в виду, чтобы прямо ID сюда перечислил, чтобы с базой сравнить
          Александр Суркин
          30 марта 2017, 19:52
          0
          Сейчас на странице вывод запроса SELECT DISTINCT * FROM dortone_ms2_product_options WHERE product_id IN ($ids)

          ids — 11, 12, 18, 19
            tools
            30 марта 2017, 20:08
            0
            в общем, надо смотреть. В самой базе запрос проверял?
    Володя
    30 марта 2017, 19:00
    6
    +3
    пример вывода всех тегов
    <!-- tags -->
    {set $tags = $_modx->runSnippet('pdoResources',[
    'class' => 'msProductOption',
    'sortby' => 'value',
    'sortdir' => 'ASC',
    'where' => json_encode([
    'key' => 'tags',
    'value:!='=> 'undefined'
    ]),
    'select' => 'DISTINCT(msProductOption.value) as id, "tag" as class_key',
    'limit' => 0,
    'return' => 'json'
    ])}
    {set $tags = $tags | fromJSON}
    {if count($tags)}
    	<ul class="uk-float-right uk-navbar-nav tm-header-tags">
    		<li data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
    			<a>{'msfbshop_tags' | lexicon}</a>
    			<div aria-hidden="true" class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom">
    				<ul class="uk-nav uk-nav-navbar">
    				{foreach $tags as $row}
    					<a href="{$row.link}">{$row.id}</a>
    				{/foreach}
    				</ul>
    			</div>
    		</li>
    	</ul>
    {/if}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
9