Tài liệu Phân trang trong PHP ppt

2 645 0
Tài liệu Phân trang trong PHP ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 where <điều kiện> 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<$nPage;$i++) .= '. $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à index.php?p=0 index.php?p=1 index.php?p=10 Khi gọi index.php?p=2; 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 . 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. 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

Ngày đăng: 26/01/2014, 09:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan