Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Sortowanie wyników zapytania
artkow00
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 5.11.2013

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


Cześć mam pytanie.

Zapytanie następujące:

  1. $a = mysql_query("SELECT * FROM `tabela` ORDER BY `id` DESC LIMIT 3");


dla tabeli:

id | name |
----------------
1 | john |
3 | jerry |
3 | tom |
4 | emma |
5 | ashley |

Po wywołaniu mysql_fetch_assoc pól 'name' powoduje wyświetlenie:

ashley
emma
tom

Jeśli przesortuję to odwrotnie to oczywiście otrzymam:

john
jerry
tom

Mi natomiast zależy na otrzymaniu:

tom
emma
ashley

Sprawa jest prosta: Czy da się najpierw wywołać z tabeli 3 ostatnie rekordy a dopiero później dowolnie je przesortować? Bo obecnie $a najpierw sortuje całą tabelę, a dopiero LIMITuje na 3 rekordy.
Od razu mówię, że zamiana miejscami LIMIT oraz ORDER BY zwraca błąd zapytania - chociaż to zapewne wiecie.. (IMG:style_emoticons/default/smile.gif)

Dzięki z góry za pomoc.
Go to the top of the page
+Quote Post
jacobson
post
Post #2





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


Mysql ma oprocz limit cos takiego jak OFFSET czyli numer elementu od ktorego chcesz zaczac zwracac. (np LIMIT 2,10)
Go to the top of the page
+Quote Post
mar1aczi
post
Post #3





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


  1. mysql_query("select * from (SELECT * FROM `tabela` ORDER BY `id` DESC LIMIT 3) order by `id` asc");
jak czegoś nie zgubiłem.

Ten post edytował mar1aczi 19.11.2013, 15:18:30
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 23:58