Phân trang trong PHP

Chia sẻ: Bùi Văn Dương | Ngày: | Loại File: DOC | Số trang:2

0
245
lượt xem
59
download

Phân trang trong PHP

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ở bài viết 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.

Chủ đề:
Lưu

Nội dung Text: Phân trang trong PHP

  1. 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 và chỉ lấy từ dòng 0 đến dòng 9 khi đó câu truy vấn sẽ là: $sql = "select * from where 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 limit 1*10,10"; .............. Tổng quát : $sql = "select * from where limit $p,10"; Thuật tóan có thể viết ngắn gọn như sau : $nLine = 10; // là số dòng trên một trang $p = 0; // mặc định lấy 10 kết quả đầu tiên if(isset($_GET['p'])) $p = $_GET['p']; $start = $p*$nLine; $total = mysql_num_rows(mysql_query("select * from
  2. where ")); $nPage = floor($total/$nLine)+1; = 'Page: '; foreach($i=0;$i
Đồng bộ tài khoản