Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка сотрудников согласно субординации в фирме
 
 автор: antf   (12.09.2014 в 17:49)   письмо автору
 
 

Здравствуйте.
В таблице users есть поле status. Возможные значения:

proddir5 - производственный директор
chief5 - руководитель ОНР
manager5 - менеджер ОНР
sklad - работник склада

Как сделать так, чтобы пользователи выводились согласно субординации: сначала proddir5, потом chief5, потом manager5, а потом sklad?

  Ответить  
 
 автор: Valick   (12.09.2014 в 18:10)   письмо автору
 
   для: antf   (12.09.2014 в 17:49)
 

ORDER BY FIND_IN_SET (status, 'proddir5, chief5, manager5, sklad' )

  Ответить  
 
 автор: antf   (13.09.2014 в 01:15)   письмо автору
 
   для: Valick   (12.09.2014 в 18:10)
 

У меня почему proddir5 в низу оказывается. Спасибо большое за пример. Я погуглил по вашей конструкции, нашел вот этот способ и он прокатил:

ORDER BY FIELD(status, 'proddir5', 'chief5', 'manager5', 'sklad' )

  Ответить  
 
 автор: Igorek   (13.09.2014 в 10:05)   письмо автору
 
   для: Valick   (12.09.2014 в 18:10)
 

пробелов не должно быть после запятой

  Ответить  
 
 автор: Valick   (13.09.2014 в 10:11)   письмо автору
 
   для: Igorek   (13.09.2014 в 10:05)
 

спасибо за замечание, упустил момент из виду когда копипастил

  Ответить  
 
 автор: Trianon   (12.09.2014 в 22:46)   письмо автору
 
   для: antf   (12.09.2014 в 17:49)
 

таблицу завести - не позволяет?

  Ответить  
 
 автор: Valick   (12.09.2014 в 22:52)   письмо автору
 
   для: Trianon   (12.09.2014 в 22:46)
 

сначала хотел написать про таблицу, а потом подумал если сортировать по внешнему ключу, то вроде бы нормально, а если необходимо изменить порядок сортировки? сразу сам себе не смог ответить на вопрос, поэтому удалил и оставил только финд ин сет

  Ответить  
 
 автор: Trianon   (13.09.2014 в 18:11)   письмо автору
 
   для: Valick   (12.09.2014 в 22:52)
 

>сначала хотел написать про таблицу, а потом подумал если сортировать по внешнему ключу, то вроде бы нормально

добавить поле порядка - по нему же и сортировать.

> а если необходимо изменить порядок сортировки?

то изменить значения в этом поле.

  Ответить  
 
 автор: Valick   (13.09.2014 в 18:27)   письмо автору
 
   для: Trianon   (13.09.2014 в 18:11)
 

это уже будет JOIN, а что будет лучше соединение или find_in_set на вскидку сказать не могу

  Ответить  
 
 автор: Trianon   (13.09.2014 в 19:04)   письмо автору
 
   для: Valick   (13.09.2014 в 18:27)
 

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

  Ответить  
 
 автор: antf   (13.09.2014 в 01:20)   письмо автору
 
   для: Trianon   (12.09.2014 в 22:46)
 

Проекту 3 года. Был сначала интернет-магазином, потом туда добавился внушительных backoffice для работы нескольких десятков сотрудников компании. Он постоянно расширяется. Статусы пользователей, их сейчас больше 20, начал прописывать в ассоциативном массиве (ключ - англ. название, значение - русское) в конф. файле. Так и продолжаю делать. Таблицу пока не хочу. С сортировкой вышел из положения.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования