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

Аватар пользователя NaZg NaZg 15 июня 2014 в 14:14

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

короче
Дру 7
Профайл2
Вьюха3

В профайл2 есть набор полей, которые могут быть заполнены или нет

Мне нужно выбрать только тех пользователей, у которых выбраны только определённые позиции в этих полях

Игрался с различными вариантами AND/OR в запросе, но добился или ничего или выбираются только те, у которых заполнены все искомые поля

поясню, если скосноязычил

радиобатоны

Поле1
-да
-нет
-может быть

поле2
-да
-нет
-может быть

поле3
-да
-нет
-может быть

выбрать всех пользователей, которые выбрали "да" или "может быть"

Комментарии

Аватар пользователя NaZg NaZg 15 июня 2014 в 20:07

"ttenz" wrote:

а так не получается?


"NaZg" wrote:
Игрался с различными вариантами AND/OR в запросе, но добился или ничего или выбираются только те, у которых заполнены все искомые поля

разумеется

Аватар пользователя validoll validoll 16 июня 2014 в 11:15

По логике:
- вьюха с выбором юзеров
- добавляем связь (relationship) c профайл (если поле в профайле)
- выбираем в фильтрах поле, и в настройках фильтрации "Is one of" и в "Options" выбираем критерий, т.е. значения "да" и "может быть"

Или проблема в чем-то другом?

Аватар пользователя NaZg NaZg 16 июня 2014 в 11:17

"validoll" wrote:
По логике:

собсна да, я не первый год замужем и так и сделал

"validoll" wrote:
Или проблема в чем-то другом?

"NaZg" wrote:
выбираются только те, у которых заполнены все искомые поля

не отрабатывается ИЛИ

Аватар пользователя NaZg NaZg 16 июня 2014 в 11:31

"validoll" wrote:
Нахрен во вьюхе ИЛИ?

а как я ещё обработаю поля, в которых параметр выбран ИЛИ не выбран?

Аватар пользователя validoll validoll 16 июня 2014 в 11:35

Ааа, понял, тебе надо чтобы поиск производился по всем полям.
Первым делом покажи хоть скриншотом условия, по которым фильтруешь.
И еще, загляни в SQL, обычно это снимает много вопросов.

Аватар пользователя ttenz ttenz 16 июня 2014 в 12:23

правильно ли я понял?:

ЕСЛИ у ЮЗЕРА Поле1=да ИЛИ Поле1=может быть ИЛИ Поле2=да ИЛИ Поле2=может быть ИЛИ Поле3=да ИЛИ Поле3=может быть ТО ПОКАЗАТЬ этого юзера

PS: такое странное чувство посетило, что хочется написать или модуль или вписать PHP в блок.

Аватар пользователя validoll validoll 16 июня 2014 в 12:39

если во вьюхе, то должно быть так
ЕСЛИ у ЮЗЕРА Поле1 is one of ('да', 'может быть') ИЛИ Поле2 is one of ('да', 'может быть')  ИЛИ Поле3 is one of ('да', 'может быть')  ТО ПОКАЗАТЬ этого юзера

Или скорее всего
ЕСЛИ у ЮЗЕРА Поле1 is none of ('нет') ИЛИ Поле2 is none of ('нет') ИЛИ Поле3 is none of ('нет') ТО ПОКАЗАТЬ этого юзера

А дальше смотреть на конечный SQL, что не так.

Аватар пользователя ttenz ttenz 16 июня 2014 в 13:56

"ttenz" wrote:
ЕСЛИ у ЮЗЕРА Поле1=да ИЛИ Поле1=может быть ИЛИ Поле2=да ИЛИ Поле2=может быть ИЛИ Поле3=да ИЛИ Поле3=может быть ТО ПОКАЗАТЬ этого юзера

Это сработает, если у юзера одно значение соответствует, но сработает ли оно, когда их несколько?

т.е. если у юзера Поле1=да и Поле2=может быть, то он уже не попадает под Поле1=да ИЛИ Поле2=может быть выборки (?).

"NaZg" wrote:
но добился или ничего или выбираются только те, у которых заполнены все искомые поля

Возможно нужно прописывать все ситуации.

Аватар пользователя NaZg NaZg 17 июня 2014 в 15:09

"validoll" wrote:
Так чем закончилась история? Мне даже интересно стало.

пока ничем

Аватар пользователя NaZg NaZg 18 февраля 2015 в 15:54

что самое смешное
вернулся к этой задаче - не понимаю в чём проблема
пол-дня игрался с И/ИЛИ

что имеется:
игнорируется секция ИЛИ
в итоге, если есть набор пользователей

Пользователь1
Опция 1 - да
Опция 2 - нет
Опция 3 - может быть

Пользователь 2
Опция 1 - Нет
Опция 2 - нет
Опция 3 - может быть

Пользоветель 3
Опция 1 - да
Опция 2 - Да
Опция 3 - может быть

фишка в том, что это необязательная опция и она может быть не отмечена

И сделать вьюшку, которая в идеале должна показать пользователей у которых (Опция 1 - или да или может быть) ИЛИ (Опция 2 или да или может быть)
но она показывает только тех пользователей, у которых есть отметка в этих опциях
ввёл доп. условие, которые фильтрует сначала по параметру NOT NULL - нифига
или я что-то не так делаю или мне врут в админку