Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как отсортировать по дате дополнительного поля?

Как отсортировать по дате дополнительного поля?


     29.11.2015    Все вопросы » Общие вопросы    936

вопрос
Здравствуйте, возможно есть решение моей проблемы, но я не нашёл. У меня даты вписаны в дополнительное поле, как новости отсортировать по этим датам?

Ответа пока нет


10 комментариев

nowheremany
Эксперт

nowheremany - 29 ноября 2015 14:33 -

Никак. Это не возможно со стандартной структурой хранения доп полей

Благодарность принимаю тут Связь

misha-koder
Юзер

misha-koder - 29 ноября 2015 15:07 -

Выбрать все новости -> Разобрать значения доп.полей -> Построить массив -> Отсортировать.
Решение, мягко говоря, не лучшее, но тем не менее.

Torman
Юзер

Torman - 29 ноября 2015 15:11 -

Можно чуть поподробней?

misha-koder
Юзер

misha-koder - 29 ноября 2015 15:21 -

$db->query() -> xfieldsdataload() -> $xf[news_id] = xf_value -> arsort($xf)

nowheremany
Эксперт

nowheremany - 29 ноября 2015 15:36 -

Не несите бред. Если отсортировать новость с помощью PHP, то это будет сортировка на странице.

Благодарность принимаю тут Связь

PunPun
Эксперт

PunPun - 29 ноября 2015 19:18 -

nowheremany, а чем не сортировка ? Чем отличается от отсортированных новостей ? Я чет не пойму.

Лучшее решение сделать отдельную колонку, а если хочется извращений можно и с доп полей, только это не юзабельно из-за жрання ресурсов сервера.

well​

nowheremany
Эксперт

nowheremany - 29 ноября 2015 21:03 -

Если новостей всего на 1 страницу - то все нормально, если больше одной - то сортировка не рбаотает

Благодарность принимаю тут Связь

ПафНутиЙ
Админ

ПафНутиЙ - 30 ноября 2015 16:41 -

Храните в допполе дату в виде unix timestamp и сортируйте через BlockPro

Каков вопрос - таков и ответ. Просто помните об этом.

Torman
Юзер

Torman - 30 ноября 2015 16:57 -

ПафНутиЙ, у меня записаны так - 1 января 2015, можно будет через BlockPro отсортировать?

ПафНутиЙ
Админ

ПафНутиЙ - 30 ноября 2015 17:15 -

Нет, нужно так: 1420070400

Каков вопрос - таков и ответ. Просто помните об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх