Danh mục tài liệu

Thuật toán Phân trang PHP

Số trang: 7      Loại file: pdf      Dung lượng: 111.74 KB      Lượt xem: 18      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Điều kiện trước khi đọc bài viết: 1. Bạn phải biết cách kết nối vào DB. 2. Bạn đã tạo sẵn 1 table và table này có chứa nhiều thông tin để chờ... phân trangBạn tạo file list.php (Hay tạo file nào đó cũng được) có code hoàn chỉnh như sau:
Nội dung trích xuất từ tài liệu:
Thuật toán Phân trang PHP Thuật toán Phân trang PHPĐiều kiện trước khi đọc bài viết:1. Bạn phải biết cách kết nối vào DB.2. Bạn đã tạo sẵn 1 table và table này có chứa nhiều thông tin để chờ... phântrangBạn tạo file list.php (Hay tạo file nào đó cũng được) có code hoàn chỉnh nhưsau:PHP Code:$list_page = Trang: ;for ( $i = 1; $i = $page_start ){print ;}$i++;if ($i >= $page_end){break;}}print trị an toàn [:]còn nếu không thì sẽ có giá trị mặc định l à 1$page = isset ( $_GET[page] ) ? intval ( $_GET[page] ) : 1;2. Số dòng trên 1 trang$rows_per_page = 20;3. Tính số dòng ở trang mở đầu dựa theo biến $page$page_start = ( $page - 1 ) * $rows_per_page;4. Tính số dòng ở trang cuối dựa theo biến $page$page_end = $page * $rows_per_page;Ví dụ về trang mở đầu và trang cuối theo công thức trên:Giả sử trang đang xem hiện giờ là 1, ta đc: $page_start = (1 - 1) * 20 = 0Còn $page_end = 1 * 20 = 20, vậy ta có giá trị 0 là mở đầu và 20 là kết thúc5. Truy xuất vào table_name$sql_query = mysql_query(SELECT * FROM table_name);6. Tính toán số trang, cách làm như sau:mysql_num_rows( $sql_query ) là lấy tổng số dòng của table đã truy xuất [1]$rows_per_page là bằng 20 (giá trị mà ta đặt ở trên) [2]Lấy [1] chia cho [2] ta sẽ ra đ ược số trangĐể làm tròn các giá trị từ (x.1 -> x.9 thành 1+x) ta dùng hàm ceil()$number_of_page = ceil ( mysql_num_rows( $sql_query ) / $rows_per_page);7. Nếu số trang lớn hơn 1 thì sẽ tiến hành liệt kê các trangif ( $number_of_page > 1 ) { $list_page = Trang: ; // Tiến hành in từng trangfor ( $i = 1; $i $list_page .= {$i} ;}}}8. Đặt biến $i bằng 0$i = 0;9. Liệt kê tất cả các dòng trong 1 tablewhile ( $result = mysql_fetch_array ( $sql_query ) ) {// Nếu như số dòng liệt kê lớn hơn hoặc bằng $page_start thì sẽ in tiếp tụcif ( $i >= $page_start ) { print $result[noidung ];// Với field noidung là do bạn đặt, ở đây L chỉ ví dụ}// Gia tăng giá trị $i theo từng dòng //Lúc đầu ta đặt biến $i l à 0, vậy nếu có 4 dòng thì biến $i sẽ gia tăng cho đếnkhi bằng 4$i++;// Nếu như số dòng đang liệt kê lớn hơn $page_end thì sẽ kết thúc vòng lặp bằng breakif ($i >= $page_end){break;}}10. Ở trên ta đã nạp nội dung cho biến $list_page, bây giờ thì in nó ra: (Designwhat to do )print