Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wyświetlanie rekordów (u dołu najnowsze) z LIMIT
Forum PHP.pl > Forum > Przedszkole
Zmorcia
Witam, potrzebuje do czata zrobić LIMIT dla listy wpisów. Ale gdy dodam LIMIT 40 np. to rekordy są innaczej wyświetlane, chodzi mi o to aby wyświetlało sie tak:

ID |
4.
5.
6.
7.

i po dodaniu rekordu zby było tak:

ID |
5.
6.
7.
8.

pomożecie?
Blame
Nie za bardzo rozumiem pytanie, ale mogę ci powiedzieć że LIMIT w MySql może przyjąć dwa argumenty winksmiley.jpg
Zmorcia
chodzi mi o to, aby najnowsze rekordy były u samego dołu + ograniczenie do 40 rekordów
bastard13
  1. SELECT * FROM table_name ORDER BY id ASC LIMIT 40
Crozin
Możesz to zrobić na wiele sposobów:

1) Zliczyć ilość wszystkich rekordów, a następnie wykorzystać te dane w OFFSET zapytania:
  1. SELECT COUNT(*) FROM chat;
  2. SELECT ... FROM chat LIMIT 5 OFFSET {$wynik powyższego - 5};

2) Możesz pobrać rekordy posortowane wg ID, a następnie wyświetlić je w odwrotnej kolejności:
  1. SELECT ... FROM chat ORDER BY id DESC LIMIT 5;


Jest masa sposobów - pierwszy powinien być jednym z najszybszych.
Zmorcia
kod
  1. $this->_fetchQuery = mysql_query("SELECT messages.*, users.* FROM messages LEFT JOIN users ON (messages.message_user=users.user_id) order by message_id DESC LIMIT 5 OFFSET ".$this->_countOffset."");


wyświetla:

zażółć - 5
zażółć - 4
zażółć - 3
zażółć - 2
zażółć - 1

a ma być

zażółć - 1
zażółć - 2
zażółć - 3
zażółć - 4
zażółć - 5
Crozin
No to wywal to sortowanie po ID - widzisz żebym ja takie tam dodawał? smile.gif
Zmorcia
wywaliłem sortowanie, to wyświetla 5 pierwszych rekordów.
Crozin
To teraz podstawowe pytanie: czy dobrze policzyłeś wartość dla OFFSET? Przy 500 rekordach w tabeli i chęci wybrania 5-ciu powinno mieć wartość 495.
Zmorcia
mój błąd, sliczne dzieki. smile.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.