Запрос к бд через xPDO
День добрый!
Вопрос в том, как правильно сделать запрос к бд.
Есть массив $massiv:
Array (
[0] => 129
[1] => 122
[2] => 106
)
Делаю запрос:
Результатом запроса должны быть ресурсы в порядке 129, 122, 106.
Вопрос в том, как правильно сделать запрос к бд.
Есть массив $massiv:
Array (
[0] => 129
[1] => 122
[2] => 106
)
Делаю запрос:
$query = $modx->newQuery('modResource');
$query->select(array('modResource.*'));
$query->where(array('id:IN' => $massiv, 'isfolder' => 0));
$result = $modx->getCollection('modResource', $query);Результам выборки идут айдишники в порядке 106, 122, 129. Не в том порядке, который необходим. А нужно в том же порядке, в котором указано в $massiv. Нашел как правильно сделать запрос (http://phpclub.ru/talk/threads/mysql-in-%D0%B8-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0.12493/) — добавить к моему запросу ORDER BY FIND_IN_SET(id, '129,122,106'), но не могу понять, как это применить к моему xPDO запросу. Результатом запроса должны быть ресурсы в порядке 129, 122, 106.
Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вообще эта штука поможет сортировать по нужному полю (вместо id можно другое вписать) и в нужной последовательности( ASC — по возрастанию, DESC — по убыванию)
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.sortby
Массив можно представить как
Array (
[0] => 122
[1] => 129
[2] => 106
)
Тогда результатом запроса должны быть ресурсы в порядке 122, 129, 106.
Надо правильно это записать…
Попробуйте так. Взято с официальной документации:
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.sortby
Спасибо, вроде все заработало, только пришлось чуть изменить:
С массивом не захотел работать, а со строкой из ресурсов без проблем)
Упс. Уже написали выше.