Сортировка по полю dob
Привет!
Хочу в панельке на сайте сделать виджет «Ближайшие дни рождения».
Пытаюсь сделать вот так:
В результате ничего — просто первые 5 записей выходят. Думаю, что проблема в синтаксисе where и поле modUserProfile.dob. Но никак не могу найти как правильно его составить… Подскажите мне пожалуйста, как правильнее составить такой запрос…
Хочу в панельке на сайте сделать виджет «Ближайшие дни рождения».
Пытаюсь сделать вот так:
[[!pdoUsers?
&tpl=`@INLINE <p>[[+username]] - [[+dob]]</p>`
&sortby=`dob`
&limit=`5`
&where =`MONTH(modUserProfile.dob) > [[!today_m]]`
&sortdir=`DESC`
&showLog=`1`
]]
[[!today_m]] — это номер текущего месяца.В результате ничего — просто первые 5 записей выходят. Думаю, что проблема в синтаксисе where и поле modUserProfile.dob. Но никак не могу найти как правильно его составить… Подскажите мне пожалуйста, как правильнее составить такой запрос…
Комментарии: 3
Это поле хранится в виде timestamp, поэтому выбирать надо, например с помощью BETWEEN, ну или просто
monthStart
monthEnd
&where =`{"dob:>=":[[!monthStart]],"AND:dob:<":[[!monthEnd]]}`
monthStart
<?php
return strtotime(date("Y-m-01 00:00:00"));
monthEnd
<?php
return strtotime(date("Y-m-01 00:00:00")." + 1 month");
Спасибо за подсказку, но к сожалению не работает такой пример. Сначала пишет, что не может найти поле dob в modUser. Когда я в
&where =`{"dob:>=":[[!monthStart]],"AND:dob:<":[[!monthEnd]]}`
пишу&where =`{"modUserProfile.dob:>":[[!monthStart]],"AND:modUserProfile.dob:<":[[!monthEnd]]}`
То ошибок в логе нет, но при этом и ничего не выводит…
ShowLog же включен, смотри получившийся sql запрос.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.