Bình thường trong khi hiển thị nội dung cơ bản, ta vẫn liệt kê tất cả dữ liệu trong CSDL ra.
Tuy nhiên trong thực tế nếu có rất nhiều bản ghi trong CSDL thì ta liệt kê ra hết sẽ rất bất tiện khi có quá nhiều dữ liệu.
Chính vì vậy, trong PHP hay bất kỳ công nghệ Lập trình Web nào khác, ta cũng cần phải phân trang.
Phân trang hay còn gọi là kỹ thuật phân trang (Pagination).
Kỹ thuật này dùng để chọn ra một số bản ghi trong CSDL, sau đó hiển thị lên giao diện người dùng.
Với mỗi tập bản ghi nhỏ này được hiện lên một trang, và chương trình cho phép chúng ta duyệt qua các trang, mỗi trang chứa một số bản ghi trong CSDL.
Để cài đặt phân trang, ta cần khai báo các biến chứa các giá trị sau đây:
-
Tổng số dòng: Là tổng số bản ghi có trong bảng CSDL (có thể một hay nhiều bảng join với nhau).
-
Kích thước trang: Chính là số bản ghi được hiển thị trên một trang, kích thước trang này sẽ quyết định xem mỗi trang sẽ hiển thị được bao nhiêu bản ghi trong CSDL.
-
Trang hiện tại: Là một biến dùng để lưu trang hiện tại.
Bước 1: Tạo giao diện web PHP | Hướng dẫn Phân trang PHP
Mở Dreamveaver, NetBeans (hoặc một trình soạn thảo khác), tạo mới một website. Tạo các thư mục cần thiết trong website.
Tạo trang php, viết mã hoặc kéo thả để thiết kế giao diện trang danh sách sản phẩm.
Sau đó...
Mở MySQL, tạo CSDL, tạo một bảng bất kỳ và insert một vài bản ghi vào bảng. Ở đây ta tạo bảng book, lưu thông tin về các cuốn sách. CSDL có tên là quanlysach
Kết nối đến CSDL để chuẩn bị truy vấn dữ liệu trong CSDL.
Bước 2: Lấy về tổng số dòng trong CSDL | Hướng dẫn Phân trang PHP
Thực hiện truy vấn để lấy về tổng số dòng trong bảng CSDL, từ tổng số dòng này, ta chia cho kích thước trang sẽ thu được tổng số trang được hiển thị.
Sử dụng PHP lấy về tổng số dòng trong CSDL
Bước 3: Lấy ra dòng bắt đầu và trang hiện tại | Hướng dẫn Phân trang PHP
Ta cần phải lấy ra dòng bắt đầu để biết rằng trong trang hiện tại, dữ liệu sẽ được lấy bắt đầu từ bản ghi nào trong CSDL.
Mỗi khi ta chuyển trang, trang hiện tại sẽ thay đổi, đó là trang hiện thời ta đang truy vấn.
Để có thể lấy ra một số bản ghi trong CSDL MySQL, ta sử dụng mệnh đề LIMIT.
Mệnh đề này cho phép lấy ra một số bản ghi trong bảng: Bắt đầu lấy từ dòng nào, và lấy bao nhiêu dòng.
Lấy ra dòng bắt đầu và trang hiện tại
Bước 4: Hiển thị các hyperlink phân trang (Pagination) | Hướng dẫn Phân trang PHP
Tiếp theo ta cần hiển thị các hyperlink cho số trang, để mỗi khi click vào một link thì ta sẽ chuyển đến trang tương ứng.
Ta sử dụng một vòng lặp để duyệt qua tất cả các trang, sau đó in ra các hyperlink tương ứng với từng trang.
* Lưu ý: Chú ý là trang hiện tại thì không hiển thị hyperlink mà sẽ chỉ hiện text.
Hiển thị các hyperlink phân trang (Pagination)
Ngoài ra ta có thể hiển thị thêm một ComboBox để người dùng có thể chọn một trang bất kỳ trong trường hợp có quá nhiều trang.
Mỗi khi người dùng muốn dịch chuyển đến trang khác thì có thể chọn một mục trong combobox.
Hiển thị thêm một ComboBox để người dùng có thể chọn một trang bất kỳ
Bước 5: View trang Web xem kết quả của việc Phân trang trong PHP | Hướng dẫn Phân trang PHP
View trang web xem kết quả của việc phân trang.
Chú ý là trong tài liệu này, ta đang thực hiện liên kết giữa hai bảng để hiển thị lên giao diện. Ta có thể chỉ hiển thị dữ liệu trong một bảng, để cho dễ làm đối với những người mới.
Dưới đây là toàn bộ Code để thực hiện Phân trang trong PHP
Toàn bộ Code phân trang trong PHP
Đừng hỏi tại sao mình lại không chia sẻ hẳn Code phân trang PHP. Đơn giản là mình không muốn bạn trở thành một cái máy.
Mình muốn kiến thức quan trọng thì phải chuyển hóa thành kỹ năng của bạn. Ít nhất thì hãy đọc lại, tự viết lại, bạn sẽ học lập trình PHP tốt hơn đấy.
> Khóa học LẬP TRÌNH WEB VỚI PHP tại NIIT - ICT Hà Nội cũng sẽ học theo cách chú trọng chuyển hóa kiến thức thành kỹ năng như vậy.
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python