miniShop2. Вывод всех цветов из категории товаров
Как вывести содержимое все цветов категории товаров? Т/е перешел в категорию — видишь список всех цветов которые есть у товаров, но без повторений )
Комментарии: 11
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В любом случае спасибо за ответ.
Так что, легко можно управиться за 2 запроса в БД на неограниченное число параметров.
Обрисую пример на словах.
Нужно достать (берем обычные поля, потому как с JSON всё понятно) уникальные значения price, weight и gender (это поле добавлено с помощью плагина). К примеру есть 3 записи в которых эти поля имеют следующие значения соответственно:
100 — 10 — male
123 — 10 — famale
150 — 12 — male
запрос примерно такого содержания
$q = $modx->newQuery('msProductData');
$q->select(array('DISTINCT msProductData.price,msProductData.weight,msProductData.gender'));
даст возможность получить уникальные комбинации, тоесть в результате мы получим 3 строки, которые содержат все эти данные, а нужно получить массив примерно такого содержания
array(
'price'=>array(100,123,150),
'weight'=>array(10,12),
'gender'=>array('male','famale')
)
Безусловно можно его сформировать в скрипте, что, по сути, я на данный момент и сделал, но хотелось получить сразу более удобоваримый результат, в первую очередь потому, что меньше памяти он скушает, ведь если в магазине 15000 товаров, а выбирать нужно не 3 свойства, а скажем 8, то у большинства товаров будут комбинации уникальные, и в результате у нас будет 12000 (к примеру) строк, а уникальных значений на все 8 свойств всего 200. Хотя я могу конечно и ошибаться по поводу памяти.