Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Sortowanie tabeli względem tablicy
Forum PHP.pl > Forum > Przedszkole
turbiński
Dobry wieczór. To mój pierwszy post więc ładnie się witam i kłaniam i grzecznie przechodzę do sedna.

Mam tabelę MySQL z rekordami o strukturze 'imię' i 'opis',

Cytat
imię | opis
-----------------
Zenek | 1
Kuba | 2
Jasio | 3
Ania | 4
Piotrek| 5


Przesyłam do skryptu PHP tablicę, dajmy na to,

Cytat
arr = ['Zenek', 'Piotrek', 'Ania', 'Kuba', 'Jasio']


Chcę posortować tabelę MySQL względem tablicy, czyli by po sortowaniu tablica wyglądała tak:

Cytat
imię | opis
-----------------
Zenek | 1
Piotrek| 5
Ania | 4
Kuba | 2
Jasio | 3


Tablica posiada zawsze tyle samo elementów co tabela (oczywiście elementy są takie same ino w tablicy pomieszane). Czy znacie jakiś pasujący do tego problemu algorytm?
mmmmmmm
Musisz to posortować jakoś tak:
  1. ORDER BY CASE pole WHEN 'Zenek' THEN 1 WHEN 'Piotrek' THEN 2 WHEN 'Ania' THEN 3 WHEN 'Kuba' THEN 4 WHEN 'Jasio' THEN 5 ELSE 99 /* jeśli inne mają być na końcu lub -1 jeśli na początku */ END
_Borys_
Można i tak
  1. SELECT imie,opis FROM tabela ORDER BY FIELD(imie,'Zenek', 'Piotrek', 'Ania', 'Kuba', 'Jasio')
turbiński
Cytat(mmmmmmm @ 15.10.2013, 08:16:40 ) *
Musisz to posortować jakoś tak:
  1. ORDER BY CASE pole WHEN 'Zenek' THEN 1 WHEN 'Piotrek' THEN 2 WHEN 'Ania' THEN 3 WHEN 'Kuba' THEN 4 WHEN 'Jasio' THEN 5 ELSE 99 /* jeśli inne mają być na końcu lub -1 jeśli na początku */ END


Za chiny ludowe nie chciało mi to zadziałać.

Cytat(_Borys_ @ 15.10.2013, 12:39:29 ) *
Można i tak
  1. SELECT imie,opis FROM tabela ORDER BY FIELD(imie,'Zenek', 'Piotrek', 'Ania', 'Kuba', 'Jasio')


To rozwiązuje mój problem. Klikam pomógł.

Bardzo wam dziękuje.
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.