Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] wyświetlanie rekordów (u dołu najnowsze) z LIMIT
Zmorcia
post
Post #1





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


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?


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Nie za bardzo rozumiem pytanie, ale mogę ci powiedzieć że LIMIT w MySql może przyjąć dwa argumenty winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
Zmorcia
post
Post #3





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


chodzi mi o to, aby najnowsze rekordy były u samego dołu + ograniczenie do 40 rekordów


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
bastard13
post
Post #4





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


  1. SELECT * FROM table_name ORDER BY id ASC LIMIT 40


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #5





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

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


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





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


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

Ten post edytował Zmorcia 4.08.2010, 21:18:52


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
Crozin
post
Post #7





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

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


No to wywal to sortowanie po ID - widzisz żebym ja takie tam dodawał? smile.gif
Go to the top of the page
+Quote Post
Zmorcia
post
Post #8





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


wywaliłem sortowanie, to wyświetla 5 pierwszych rekordów.


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
Go to the top of the page
+Quote Post
Crozin
post
Post #9





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

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


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





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

Ostrzeżenie: (20%)
X----


mój błąd, sliczne dzieki. smile.gif


--------------------
POMOGŁEM ? Wciśnij "Pomógł" , dzięki !
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 Aktualny czas: 22.08.2025 - 10:17