Подскажите, пожалуйста, каким образом можно организовать вывод из БД список пользователей по статусу и по дате регистрации, причём чем выше статус, тем выше в списке он должен находиться независимо от даты регистрации?
Например:
Есть 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 Модератор и т.д.
Да... это всё конечно хорошо, большое спасибо за ответ.
Но как он может узнать какой статус важнее?
Если только, как вариант, перед статусом ставить цифру...
1 Администратор
2 Модератор и т.д.
Спустя 4 минуты, 24 секунды (8.08.2011 - 21:33) redreem написал(а):
сделайте статус цифровым полем. например чем меншье номер, тем выше статус. если у вас уже все завязано на поле статуса - добавьте поле, которое будет показывать уровень статуса.
только параметр DESC надо будет убрать если у вас будет вариант "чем меньше номер - тем выше статус".
только параметр 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` = 'Администратор'