Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie - ale nie po kolei
Forum PHP.pl > Forum > Bazy danych > MySQL
TomASS
Mam tabelę przypuśćmy, że 'zamówienia' i teraz mam w niej pole STATUS, oto możliwości statusów:

- zamówione
- do załadunku
- po załadunku
- dostarczono

i teraz chciałbym ze względu na te pole sortować, ale w taki sposó by np. użytkownik magazynier na górze miał 'do załadunku' a na końcu 'po załadunku' - bo to dla niego istotne, z kolei użytkownik 'kontroler' chciałby mieć na początku 'dostarczono' - bo te rekordy są dla niego najważniejsze. Wprowadzenie dodatkowego pola do sortowania nic nie da, ponieważ bym musiał dodać dwa takie pola - dla kontrolera i dla magazyniera, ale co będzie jeśli rodzaji użytkowników będzie 10? Nie za bardzo mi się widzi z każdym dodawaniem nowego rodzaju użytkownika dodawanie kolumny do całej bazy :/
tmk
Zapewne w oddzielnej tabelce trzymasz użytkoników, to tam dorób jedno pole, które pozwoli Ci rozpoznać jak 'on' ma mieć dane wyświetlane.
spenalzo
może coś takiego...
  1. SELECT CASE WHEN STATUS WHEN 'do zaladunku' THEN 1 WHEN 'costam' THEN 2 WHEN 'cos innego' THEN 3 WHEN 'dostarczono' THEN 4 END AS status_sort
  2. FROM ......
  3. ORDER BY status_sort

powinno działać.


Edit: eh, chyba kiepsko doczytałem, bo zdaje sie, że nie o to chodziło - ale masz wskazówkę jak można by to rozwiązać.
TomASS
No właśnie chodzi mi o takie rozwiązanie przy którym nie musiałbym nic dodawać w przypadku dodania nowego typu użytkownika. Szkoda, że nie można podać funkcji sortującej po ORDER BY tak jak w przypadku usort dla php :/
spenalzo
Ale do usort i tak musialbyś dodać odpowiedni warunek sortowania dla nowego użytkownika tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.