[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка
rooor
Здравствуйте.

Подскажите, пожалуйста, каким образом можно организовать вывод из БД список пользователей по статусу и по дате регистрации, причём чем выше статус, тем выше в списке он должен находиться независимо от даты регистрации?

Например:
Есть 5 пользователей
Администратор (дата регистрации 2010-10-10 15:00:00)
Модератор1 (дата регистрации 2011-01-20 15:00:00)
Модератор2 (дата регистрации 2009-01-20 15:00:00)
Пользователь1 (дата регистрации 2009-09-30 15:00:00)
Пользователь2 (дата регистрации 2010-01-20 15:00:00)

А при выводе список должен выглядеть вот так:
Администратор -статус самый высокий, на дату не смотрим, в списке первый
Модератор2 -статус чуть ниже, зарегистрирован раньше модератора1
Модератор1 -статус тот же, зарегистрирован позже
Пользователь1 -статус ниже, зарегистрирован раньше, чем Пользователь2
Пользователь2 -статус тот же, зарегистрирован позже




Спустя 1 час, 13 минут (8.08.2011 - 21:12) redreem написал(а):
SELECT * FROM users ORDER BY status DESC,reg_date

Спустя 16 минут, 35 секунд (8.08.2011 - 21:29) rooor написал(а):
redreem

Да... это всё конечно хорошо, большое спасибо за ответ.
Но как он может узнать какой статус важнее?

Если только, как вариант, перед статусом ставить цифру...
1 Администратор
2 Модератор и т.д.

Спустя 4 минуты, 24 секунды (8.08.2011 - 21:33) redreem написал(а):
сделайте статус цифровым полем. например чем меншье номер, тем выше статус. если у вас уже все завязано на поле статуса - добавьте поле, которое будет показывать уровень статуса.
только параметр DESC надо будет убрать если у вас будет вариант "чем меньше номер - тем выше статус".

Спустя 2 минуты, 20 секунд (8.08.2011 - 21:36) rooor написал(а):
redreem

Согласен, лучше будет добавить ещё одно поле.

Благодарю за решение вопроса)

Спустя 26 секунд (8.08.2011 - 21:36) redreem написал(а):
вобще как правило (это и удобно и опробовано многолетней практикой) группу пользователя лучше тупо делать неким номером, а не конкретно прописывать ее название в поле. при чем 0-суперадмин, 1-админы, 2-модеры, 3-пользователи, 4-гости... это довольно распространенный способ разделения.

Спустя 16 минут, 19 секунд (8.08.2011 - 21:52) rooor написал(а):
Ну так-то да, просто я думал может есть ещё какие варианты сортировки

Спустя 31 минута, 58 секунд (8.08.2011 - 22:24) redreem написал(а):
да вобще говоря можно и php-сортировку сделать в любых вариантах, просто это будет уже точно более ресурсоемко.

Спустя 18 минут, 48 секунд (8.08.2011 - 22:43) Invis1ble написал(а):
rooor
Цитата
есть ещё какие варианты сортировки

примерно так:
select *
from `users`
order by `status` = 'Пользователь', `status` = 'Модератор', `status` = 'Администратор'
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.