Запрос с чистым sql в pdoTools
Здравствуйте!
У меня стоит задача делать разный вывод пользователей в зависимости от get параметра search в url.
Изначально сделал так
Вот тут и проблема, пишу так:
У меня стоит задача делать разный вывод пользователей в зависимости от get параметра search в url.
Изначально сделал так
&where=`{
"modUserProfile.fullname:LIKE": "%[[!#get.search]]%",
"OR:modUserProfile.mobilephone:LIKE": "%[[!#get.search]]%"
}`
Но в таком случае итоговый запрос получается такого видаAdded where condition: modUser.active=1, modUserProfile.blocked=0, modUserGroupMember.user_group:IN(2), modUserProfile.fullname:LIKE=%1234%, OR:modUserProfile.mobilephone:LIKE=%1234%
То есть он игнорит все что идет до OR:modUserProfile.mobilephone:LIKE=%1234%
Поэтому мне нужно обернуть modUserProfile.fullname:LIKE=%1234% OR:modUserProfile.mobilephone:LIKE=%1234%
в скобки.Вот тут и проблема, пишу так:
&where=`["
(modUserProfile.fullname LIKE \"%[[!#get.search]]%\" OR modUserProfile.mobilephone LIKE \"%[[!#get.search]]%\")
"]`
Но эта строчка не добавляется в запрос вообще. Пробовал по разному кавычки менять, не выходит. Даже если вместо [[!#get.search]] добавить строку. Комментарии: 7
Даже если так записать
Мне бы хоть 1 рабочий пример.
&where=`["
modUserProfile.fullname LIKE \"%Рога%\"
"]`
В логе видно что эта запись не добавляется в WHERE.Мне бы хоть 1 рабочий пример.
Пробуй так, вроде должно работать
&where=`{"`modUserProfile`.`fullname`:LIKE":"%text%"}`
И чем это отличается от
&where=`{
"modUserProfile.fullname:LIKE": "%text%"
}`
&where=`[
{"modUserProfile.fullname:LIKE": "%[[!#get.search]]%",
"OR:modUserProfile.mobilephone:LIKE": "%[[!#get.search]]%"}
]`
Сейчас так и стоит, но я описал выше почему этот вариант не подходит.
Получается вот такой вызов в логе:
Получается вот такой вызов в логе:
WHERE ( `modUser`.`active` = 1 AND `modUserProfile`.`blocked` = '0' AND `modUserGroupMember`.`user_group` IN ('2') AND `modUserProfile`.`fullname` LIKE '%Рога%' OR `modUserProfile`.`mobilephone` LIKE '%Рога%' )
А нужно:WHERE ( `modUser`.`active` = 1 AND `modUserProfile`.`blocked` = '0' AND `modUserGroupMember`.`user_group` IN ('2') AND (`modUserProfile`.`fullname` LIKE '%Рога%' OR `modUserProfile`.`mobilephone` LIKE '%Рога%' ))
То есть скобки добавить.
Точно так стоит? У меня здесь 4 скобки — две открывающие и две закрывающие, пара квадратных и пара фигурных
Точняк. Теперь все работает! Спасибо тебе большое!
Я изначально ориентировался на эту статью https://bezumkin.ru/training/course2/3006/
Тут по другому показано…
Я изначально ориентировался на эту статью https://bezumkin.ru/training/course2/3006/
Тут по другому показано…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.