TAILIEUCHUNG - Phân trang trong PHP

Ở 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. | 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, 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+); //10 là số dòng trên mỗi trang -->Kết quả: dòng : trang 1 dòng : 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 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 where ")); $nPage = floor($total/$nLine)+1; = 'Page: '; foreach($i=0;$i'.($i+1).' '; /* $result = mysql_query("select * from where limit $start,$nLine"); Hiển thị nội dung cần trình bày */ ?> Sau đó in giá trị của ra ta được Page : 1 2 3 4 5 6 7 8 9 10 11 ( với đường link tương ứng là . Khi gọi ; thì $start = 2*10 = 20; nên câu truy vấn $result sẽ là "select * from where limit 20,10" nghĩa là lấy 10 mẫu tin tính từ mẫu tin thứ 20 => lấy từ rows 20-30, tương tự cho các trang khác Thuật tóan trên là cách viết của TG, bạn có thể viết theo ý mình , chủ yếu là bạn hiểu cách phân trang, còn việc viết thế nào chỉ là vấn đề kỹ năng . Tác giả: TG

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.