Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (71.15 KB, 2 trang )
Phân trang trong PHP
Ở bài viết này chỉ dừng lại ở mức phân tích cách phân trang , còn code cụ thể thì mỗi
người có một cách viết riêng. Giả có table 1000 dòng và sau khi truy vấn mysql select
theo một điều kiện cụ thể (1) $sql = select * from where
thì bạn thu được kết quả là 101 dòng và rõ rảng kô thể cho hiển thị tất cả 101 dòng ra
web nên bạn phải fân nó ra thành nhiều trang để tăng tốc độ load.
Trong ví dụ này tôi sẽ fân mỗi trang 10 dòng , như vậy table sẽ gồm có 11 trang trong đó có:
- 10 trang mỗi trang 10 dòng
- 1 trang , trang này chỉ có 1 dòng
và được đánh số từ 0,1 10
Cách thực hiện:
+ tính tổng số dòng của câu select với điều kiện cụ thể như (1) có thể dùng mysql_num_rows để
tính số dòng của (1)
> thí dụ này là 101 dòng ( gọi là $total)
+ Tính số trang để biểu diễn số dòng vừa tìm được
số trang = tổng số dòng/ số dòng trên mỗi trang
$nPage = floor($total/10+0.5); //10 là số dòng trên mỗi trang
>Kết quả:
dòng 0 9 : trang 1
dòng 10 19 : trang 2
dòng 90 99 trang 10
dòng 100 : trang 11
$p là thư tự trang -> $p = 0,1,2, ,10
Bây giờ khi gọi trang index.php?p=0 thi nhiệm vụ là chỉ lấy kết quả trong table thỏa <điều kiện>
và chỉ lấy từ dòng 0 đến dòng 9
khi đó câu truy vấn sẽ là: $sql = "select * from where <điều kiện> limit 0,10";
Tương tự cho trang $p=1 (lấy từ dòng 10 đến dòng 20) là $sql = "select * from
where <điều kiện> limit 1*10,10";
Tổng quát : $sql = "select * from