171 похожих чатов

Здравствуйте. Необходимо с помощью msProducts выбрать товары, у которых опция

(Множественный список) равна одному конкретному значению. Как это сделать?

Я выбираю, указав optionFilters, а выбираются еще и товары, у которых в определенной опции несколько значений (не только то, которое мне нужно).

Как сделать выборку именно с одним значением?

12 ответов

29 просмотров
Evg- Автор вопроса

Наверно, надо менять плагин msProducts - добавить какой-то параметр, который будет отвечать за то, что выборка "строгая". И дописывать SQL.

Я бы начал с where=['value:IN'=>$option]

Evg
скорее, NOT IN))

Может и так, но в целом не очень понятно что ты хочешь сделать. Есть опция у которой несколько значений и есть ещё какое-то значение, которое что?

Evg- Автор вопроса
Артур Шевченко💀
Может и так, но в целом не очень понятно что ты хо...

Задача - выбрать те id, у которых value равен ТОЛЬКО "Для бани". Вот запрос: SELECT * FROM modx_ms2_product_options WHERE `value` = 'Для бани' В итоге выбираются id, у которых value равен "Для бани", "Для стен", "Для пола". Потому что в таблице много записей с этим id. Нужно использовать агрегирующие функции. Но, кажется, msProducts не может так. Надо менять код сниппета. Запрос должен быть таким: SELECT id, GROUP_CONCAT(value) FROM modx_ms2_product_options GROUP BY id HAVING GROUP_CONCAT(value) = 'Для бани'; Или msProducts может что-то подобное?

Evg- Автор вопроса
Артур Шевченко💀
Не знаю, надо пробовать.

Что пробовать? У тебя есть какие-то идеи? Судя по документации нет параметра у msProducts, отвечающего за агрегацию.

Evg
Что пробовать? У тебя есть какие-то идеи? Судя п...

where=>['Для бани: IN'=>'value'] Похоже на бред, но кажется я что-то подобное делал

Evg
Задача - выбрать те id, у которых value равен ТОЛЬ...

Делаешь обертку для сниппета. В ней сначала будет запрос для получения массива нужных ID. Можно чистый SQL И далее эти ID пробрасываешь в msProducts

Evg- Автор вопроса
Артур Шевченко💀
where=>['Для бани: IN'=>'value'] Похоже на бред, ...

Ого, то есть задом наперед. Попробую, спасибо

Evg- Автор вопроса
Evg
Спасибо, интересный вариант))

Я обычно так делаю, когда нужно усложненный запрос составить

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
17
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
Карта сайта