Почему запрос к БД возвращает отсортированные по порядку значения и как это исправить?
Приветствую.
Есть довольно простой сниппет и при запросе к БД значения сортируются по возрастанию, а этого хотелось бы избежать:
Есть довольно простой сниппет и при запросе к БД значения сортируются по возрастанию, а этого хотелось бы избежать:
<?php
// указаны ID строк фоток в БД
$photos = '5,3,1,4,2';
// формируем запрос
$sql = "SELECT * FROM images WHERE id IN (".$photos.")";
$query = $modx->query($sql);
// выполняем запрос
$photos = $query->fetchAll();
// выводим результат
print_r($photos);
//получаем отсортированный по возрастанию массив (упрощенный вид)
1.png
2.png
3.png
4.png
5.png
Как этого избежать и выводить записи именно в таком порядке, который указан в переменной $photos? Комментарии: 4
Используйте ORDER BY и сортируйте, как вам угодно. По умолчанию сортировка идет по PRIMARY индексу, в вашем случаи по ID.
Мне нужен такой порядок, который указан в переменной $photos. Как это сделать?
ORDER BY FIELD(id, ".$photos.")
Спасибо. А я думал, что это сам MODX так делает запрос.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.