xPDO Cниппет

Добрый день!

Есть сниппет выборки из таблицы.

<?php
//Add in our package
$base_path = !empty($base_path) ? $base_path : $modx->getOption('core_path').'components/courses/';
$modx->addPackage('courses', $base_path.'model/');

//Lets have a quick play with XPDO...
$where = array (
        'published' => 1,
        'status_life' => 0,
        'birthday' => ....
    );
$res = $modx->getCollection('course',$where);

foreach ($res as $r) {
    echo $r->get('name');
}
Нужно вывести только те записи у которых по полю birthday месяц равен текущему месяцу.

Раньше запрос выглядел так:

$result = mysql_query("SELECT * FROM san_course WHERE MONTH(birthday) = MONTH(NOW()) AND status_life = 0",$db);
Подскажите как сделать такое условие в xPDO?
Антон Ситников
20 августа 2014, 11:58
modx.pro
674
0

Комментарии: 2

Василий Наумкин
20 августа 2014, 16:07
0
Ты будешь смеяться, но
$where = "MONTH(birthday) = MONTH(NOW()) AND status_life = 0 AND published = 1";

Ну или так:
$where = array (
	'published' => 1,
	'status_life' => 0,
	'birthday:LIKE' => '%-' . date('m') . '-%'
);
Желательно добавить индекс на столбец birthday.
    Антон Ситников
    20 августа 2014, 16:19
    0
    Спасибо Василий, за ответ. Да, действительно смешно и грустно. Грустно потому, что элементарная вещь, а не мог решить, лез в какие то дебри.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2