Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Sortowanie tabeli względem tablicy
turbiński
post 14.10.2013, 23:48:16
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 3
Dołączył: 14.10.2013

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
mmmmmmm
post 15.10.2013, 07:16:40
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
_Borys_
post 15.10.2013, 11:39:29
Post #3





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


Można i tak
  1. SELECT imie,opis FROM tabela ORDER BY FIELD(imie,'Zenek', 'Piotrek', 'Ania', 'Kuba', 'Jasio')


Ten post edytował _Borys_ 15.10.2013, 11:43:04
Go to the top of the page
+Quote Post
turbiński
post 15.10.2013, 17:58:50
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 3
Dołączył: 14.10.2013

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.07.2025 - 21:24