Tôi đã thấy mã của bạn trong một câu trả lời khác và tôi khuyên bạn nên sử dụng chức năng LIMIT trong MySql thay vì bù trừ các giá trị. Ví dụ:
SELECT * FROM all_posts ORDER BY post_id DESC LIMIT '".(((int)$page)*5)."',5
Thao tác này sẽ chỉ lấy một số trang trong yêu cầu AJAX và nhận bù đắp tự động. Đó là một truy vấn nhất quán và hoạt động độc lập với các kết quả cuối cùng trên trang. Gửi một cái gì đó như page =1 hoặc page =2 trong mã jQuery của bạn. Điều này có thể được thực hiện theo một số cách khác nhau.
Đầu tiên, đếm số phần tử được tạo trên trang và chia cho số trên trang. Điều này sẽ mang lại một số trang.
Thứ hai, bạn có thể sử dụng jQuery và liên kết số trang hiện tại với nội dung:
$(body).data('page', 1)
Tăng nó lên mỗi lần tải trang.
Làm điều này thực sự là cách tốt hơn để thực hiện, vì nó sử dụng một truy vấn cho tất cả các hoạt động và không yêu cầu nhiều thông tin về dữ liệu đã có trên trang.
Chỉ có điều cần lưu ý là logic này yêu cầu yêu cầu trang đầu tiên là 0, không phải 1. Điều này là do 1 * 5 sẽ đánh giá thành 5, bỏ qua 5 hàng đầu tiên. Nếu 0, nó sẽ đánh giá thành 0 * 5 và bỏ qua 0 hàng đầu tiên (vì 0 * 5 là 0).
Hãy cho tôi biết bất kỳ câu hỏi nào bạn có!