Выбрать все уникальные значения опций по ключу
Добрый день!
Пытаюсь сделать свой фильтр товаров для 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}
К сожалению, не понял ничего :(
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.