Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sortowanie tylko wczytanych wyników
wbeatn
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 7.05.2007

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


  1. if(isset($_GET['sortuj']) and $_GET['sortuj'] == "desc") {$sortby = "DESC";}
  2. elseif(isset($_GET['sortuj']) and $_GET['sortuj'] == "asc") {$sortby = "ASC";}
  3. else { $sortby = ""; }
  4.  
  5. $od = (($strona*5)-5);
  6. @$rezultat6 = "SELECT id_ladunku, id_pojazdu FROM data_ladunki_pojazdy ORDER BY data_zgloszenia $sortby, godzina_zgloszenia $sortby LIMIT $od, 5";
  7. @$wynik6 = mysql_db_query($baza,$rezultat6);
  8. $odlicz = 1;
  9. while(@$row6 = mysql_fetch_row($wynik6))
  10. {
  11. /* (...) */
  12. }
  13. $odlicz++;
  14. if($odlicz==6) break;
  15. }


Dlaczego przy takim kodzie gdy wywołuje w adresie sortowanie sortuje całą tabelę ze wszystkimi w niej wpisami, a nie tylko to co wczytało? Wpisów w niej jest prawie czterysta. Kiedy sortuje do malejąco, to jako pierwsza pozycja wskakuje ostatni z tych prawie czterystu, a nie ostatni z wczytanych pięciu. Jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
To zapytanie zwraca na stronie pusty wynik.
Zapewne wyrzuca jakiś błąd, ale Ty wszystkie błędy sobie ukrywasz... pozbądź się "@" oraz funkcji mysql_* na rzecz PDO, albo chociaż korzystaj z mysql_error.

Jak już napisałem: sortowanie (ORDER BY) występuje przed wycięciem (OFFSET ... LIMIT ...) rekordów. Jeżeli chcesz wymusić odwrotne działanie musisz skorzystać z zapytania, które podałem w pkt. 2.
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 19:17