THIẾT KẾ VÀ LẬP TRÌNH WEB 1 Lập Trình Web Kỹ thuật phân trang trong PHP ĐẠI HỌC SÀI GÒN – KHOA CNTT GV: Trần Đình Nghĩa tdnghia1977@gmail.com THIẾT KẾ VÀ LẬP TRÌNH WEB 2 Các bước tiến hành Tính tổng số record - $totalrecords Xác định số lượng record tối đa được trình bày trên trang - $recs_per_page Lấy biến trang hiện hành - $page Nếu chưa có, $page = 1 Sử dụng phát biểu LIMIT start, num_record để lấy chính xác dữ liệu cần Xác định liên kết đến Trang trước, Trang kế THIẾT KẾ VÀ LẬP TRÌNH WEB 3 Ví dụ mẫu THIẾT KẾ VÀ LẬP TRÌNH WEB 4 Ví dụ mẫu $fldcategory_id = $_REQUEST["category_id"]; $conn = mysql_connect("localhost", "root", "") or die ("Không thể kết nối csdl"); mysql_select_db("bookstore", $conn); mysql_set_charset("utf8", $conn); $sql = "SELECT MASACH, TENSACH, TENTG, GIA, GHICHU, TENTL FROM SACH, THELOAI WHERE SACH.MATL=" . $fldcategory_id . " and THELOAI.MATL=SACH.MATL " $result = mysql_query($result); while ($row = mysql_fetch_array($result)) { // các lệnh trình bày record $row } THIẾT KẾ VÀ LẬP TRÌNH WEB 5 $totalrecords và $recs_per_page Tính tổng số record – $totalrecord: Bổ sung lệnh sau vào trước câu lệnh gán $sql trong ví dụ mẫu: $sql = “SELECT COUNT(*) FROM SACH WHERE MATL=“ . $fldcategory_id; $result = mysql_query($sql); $row = mysql_fetch_array($result); $totalrecords = $row[0]; Xác định lượng record tối đa được trình bày trên trang - $recs_per_page: $recs_per_page = 5; THIẾT KẾ VÀ LẬP TRÌNH WEB 6 &page & LIMIT Lấy biến trang hiện hành – $page $page = $_REQUEST["page"]; if (!isset($page)) $page = 1; Sử dụng phát biểu LIMIT start, num_record: sửa lệnh gán $sql trong ví dụ mẫu thành: $sql = "SELECT MASACH, TENSACH, TENTG, GIA, GHICHU, TENTL FROM SACH, THELOAI WHERE SACH.MATL=" . $fldcategory_id . " and THELOAI.MATL=SACH.MATL LIMIT " . ($page- 1)*$recs_per_page . "," . $recs_per_page; THIẾT KẾ VÀ LẬP TRÌNH WEB 7 Xác định liên kết đến Trang trước, Trang kế Bổ sung các lệnh sau vào vị trí đặt liên kết <?php $sFileName="bookscategory.php"; if (( $page == 1 ) && ($page*$recs_per_page<$totalrecords)) echo("<a href=" . $strFileName . "?page=" . ($page + 1) . "&category_id=" . $fldcategory_id . ">Trang kế</a>"); else { if ($page > 1) echo("<a href=" . $strFileName . "?page=" . ($page - 1) . "&category_id=" . $fldcategory_id . ">Trang trước</a>"); if ($page*$recs_per_page<$totalrecords) echo("<a href=" . $strFileName . "?page=" . ($page + 1) . "&category_id=" . $fldcategory_id . "> Trang kế</a>"); } ?> . THIẾT KẾ VÀ LẬP TRÌNH WEB 1 Lập Trình Web Kỹ thuật phân trang trong PHP ĐẠI HỌC SÀI GÒN – KHOA CNTT GV: Trần Đình Nghĩa tdnghia1977@gmail.com THIẾT KẾ VÀ LẬP TRÌNH WEB 2 Các bước tiến. để lấy chính xác dữ liệu cần Xác định liên kết đến Trang trước, Trang kế THIẾT KẾ VÀ LẬP TRÌNH WEB 3 Ví dụ mẫu THIẾT KẾ VÀ LẬP TRÌNH WEB 4 Ví dụ mẫu $fldcategory_id = $_REQUEST["category_id"]; . Xác định lượng record tối đa được trình bày trên trang - $recs_per_page: $recs_per_page = 5; THIẾT KẾ VÀ LẬP TRÌNH WEB 6 &page & LIMIT Lấy biến trang hiện hành – $page $page =