Выбрать все уникальные значения опций по ключу
        Добрый день!
Пытаюсь сделать свой фильтр товаров для Minishop2. Мне нужно получить массив всех возможных опций по ключу key из таблицы modx_ms2_product_options. Подскажите, пожалуйста, как составить правильный запрос.
    
    
                                                                                
            Пытаюсь сделать свой фильтр товаров для Minishop2. Мне нужно получить массив всех возможных опций по ключу key из таблицы modx_ms2_product_options. Подскажите, пожалуйста, как составить правильный запрос.
Комментарии: 9
                Скрин таблицы бд:
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' перестает работать.
                    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' перестает работать.
                какие ids в запросе перечислены?            
                    
                $arr_ids = $modx->getChildIds($parents,1,array('context' => 'web'));
$ids = implode(',', $arr_ids);
Берутся все дочерние ресурсы определенной категории.
                    $ids = implode(',', $arr_ids);
Берутся все дочерние ресурсы определенной категории.
                я имел в виду, чтобы прямо ID сюда перечислил, чтобы с базой сравнить            
                    
                Сейчас на странице вывод запроса SELECT DISTINCT * FROM dortone_ms2_product_options WHERE product_id IN ($ids)
ids — 11, 12, 18, 19
                    ids — 11, 12, 18, 19
                в общем, надо смотреть. В самой базе запрос проверял?            
                    
                Да, конечно. Мой скайп xlinuz.            
                    
                пример вывода всех тегов
                    <!-- 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}            
                К сожалению, не понял ничего :(            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.