10/10/2018, 00:15

chỉ tui cách lấy mẫu tin cuối cùng

tui có bảng sau: member(ID,USER,PASS) ID là auto increament là primary luôn
Bảng này có rất nhiều record
giờ tôi muốn lấy ra 10 record cuối cùng, nhưng 10 record này fải sắp xếp ID tăng dần (ASC)
Nhờ các pro chỉ dùm
Code php và data là Mysql
zoejoe viết 02:22 ngày 10/10/2018
PHP Code:
SELECT FROM `TABLEORDER BY ID DESC LIMIT 10
Ý bác theo em hiểu thì tuơng đuơng với lấy 10 record đầu tiên của bảng sắp xếp theo thứ tự DESC
sacroyant viết 02:30 ngày 10/10/2018
Được gửi bởi zoejoe
PHP Code:
SELECT FROM `TABLEORDER BY ID DESC LIMIT 10
Ý bác theo em hiểu thì tuơng đuơng với lấy 10 record đầu tiên của bảng sắp xếp theo thứ tự DESC
Câu của bác lấy ra 10 mẩu tin nhưng vẫn là giảm dần. Phải dùng PHP sort lại phát nữa

Nguồn : 1,2,3,4,5,6,7,8,9,10,11,12

Xuất ra : 12,11,10,9,8,7,6,5,4,3
tiendx2002 viết 02:24 ngày 10/10/2018
Được gửi bởi sacroyant
Câu của bác lấy ra 10 mẩu tin nhưng vẫn là giảm dần. Phải dùng PHP sort lại phát nữa

Nguồn : 1,2,3,4,5,6,7,8,9,10,11,12

Xuất ra : 12,11,10,9,8,7,6,5,4,3
Ý đúng mà viết sai nè.
Vì thực tế là chúng ta xài mysql_fetch_array nên có thể push vào mảng theo thứ tự ngược (bình thường là $rows[] = $row), nhưng giờ xài:
Code:
array_unshift($rows, $row);
Thân mến.
sacroyant viết 02:21 ngày 10/10/2018
@ tiendx2002

Chỗ này là em nói theo cách của Zoe :

Nguồn : 1,2,3,4,5,6,7,8,9,10,11,12

Xuất ra : 12,11,10,9,8,7,6,5,4,3
Nguồn là dữ liệu trong database, xuất ra là "kết quả lấy ra". Và vì thế nên chưa thỏa mãn yêu cầu và cần sort lại.

Còn cách của bác đúng là pro
tiendx2002 viết 02:27 ngày 10/10/2018
Được gửi bởi sacroyant
@ tiendx2002

Chỗ này là em nói theo cách của Zoe :



Nguồn là dữ liệu trong database, xuất ra là "kết quả lấy ra". Và vì thế nên chưa thỏa mãn yêu cầu và cần sort lại.


Còn cách của bác đúng là pro
Yeah mình không theo dõi hết nên sai chỗ này. .
Xin lỗi sacroyant nhé.
Thân mến.
phamduyvt viết 02:20 ngày 10/10/2018
nguồn là: 1 2 3 4 5 6 7 8 9 10 11 12
giả sử tui muốn lấy 5 số cuối cùng thì nó phải ra thế này: 8 9 10 11 12
chứ ko phải là : 12 11 10 9 8
s.code viết 02:31 ngày 10/10/2018
Khó gì đâu. Nếu không muốn dùng php để sort thì

Đếm tổng số record sau đó vẫn order by asc

Ví dụ ra 356 mẩu tin.

sẽ limit 351, 5

Một giải pháp khác là cứ lấy theo id giảm dần đi. Đưa vào 1 mảng. Khi xuất ra thì for đảo

for($i=count($arr)-1; $i=0; $i--) echo ()

[=========> Bổ sung bài viết <=========]

Thêm 1 cách nữa là dùng view với mysql > 5
sacroyant viết 02:29 ngày 10/10/2018
@ phamduyvt: đã có nhiều hơn 1 giải pháp cho bạn còn gì

Tớ thấy cách viết của bác tiendx2002 có vẻ hay hơn cả.

@s.code : Nếu "limit maximum, 5" thì phải thêm câu lệnh count, nếu push vào array thì phải lấy ra toàn bộ các mẩu tin --> cả 2 đều không tối ưu.

Còn cách "view với mysql > 5" cụ thể như thế nào hả bác ? Chỉ giáo em với
TheHeTre viết 02:23 ngày 10/10/2018
Còn một cách tương tự như bạn Tiến: Khi dùng mysql_fetch_array() thì record được cho vào mảng có key đánh số theo thứ tự 0,1,2,3... ngoài key theo field.

Vậy nên có thể dùng:
PHP Code:
$final krsort($rows); 
Bài liên quan
0