Kỹ thuật phân trang với MySQL và PHP

  • Wednesday 10/07/2024

Kỹ thuật phân trang  rất quan trọng trong lập trình web, giúp chia nhỏ dữ liệu thành nhiều trang khác nhau để hiển thị một cách hợp lý và cải thiện trải nghiệm người dùng. Bài viết này sẽ hướng dẫn bạn cách thực hiện kỹ thuật phân trang với MySQL và PHP một cách chi tiết và hiệu quả.

Tại sao cần phải phân trang?

Khi số lượng dữ liệu lớn, việc tải toàn bộ dữ liệu một lúc sẽ làm giảm hiệu suất của trang web và tạo ra trải nghiệm người dùng kém. Phân trang giúp:

  • Cải thiện hiệu suất: Giảm thời gian tải cho website.
  • Tăng trải nghiệm người dùng: Giúp người dùng dễ dàng duyệt qua dữ liệu. Từ đó, giúp website đạt thứ hạng cao hơn về tính thân thiện người dùng.
  • Dễ quản lý và hiển thị dữ liệu: Phân chia dữ liệu thành các trang nhỏ gọn và dễ quản lý hơn.

phân trang

Trong bài này, mình sẽ thao tác với table `demo` có 40 dòng dữ liệu. Mỗi trang bạn sẽ lấy ra và hiển thị 10 dòng dữ liệu. Để thực hiện phân trang trong PHP chúng ta cần xác định 2 giá trị quan trọng sau:

  1. Số lượng bản ghi bạn mong muốn hiển thị trên 1 trang là bao nhiêu ($limit). Ở bài viết này chúng ta sử dụng `$limit = 10`
  2. Chúng ta đang có tổng cộng bao nhiêu bản ghi trong bảng dữ liệu. Từ đó bạn có thể tính toán xem bao nhiêu trang sẽ hiển thị.

Câu lệnh SQL để lấy ra tổng số bản ghi trong bảng như sau:

SELECT  count(*)  FROM  `demo`

Bạn sẽ lấy ra được 40 dòng.

Tính số trang sẽ hiểu thị:

$total = 40;
$limit = 10;

$pages = ceil($total / $limit);

Ở đây chúng ta dùng hàm `ceil` để làm tròn lên. Vì có những trường hợp `40 < $total < 50` thì ta hiển thị là 5 page.

Tiếp tục với câu SQL Query phân trang

SELECT  *  FROM  `demo`  LIMIT  $limit  OFFSET  $offset

Chúng ta thấy có 2 biến cần được truyền vào.

  1. Biến $limit: đây là giới hạn số bản ghi sẽ lấy ra trong câu lệnh sql. Nó đồng nghĩa với số lượng bản ghi mà ta muốn hiển thị trên 1 trang.
  2. Biến $offset: xác định vị trí lấy bản ghi bắt đầu từ vị trí nào trong bảng dữ liệu.

Ở đây, bạn sẽ để ý có 1 quy luật nhỏ thế này để có thể tính toán.

– Nếu page đầu tiên, offset page này sẽ là 0 (chúng ta lấy dữ liệu từ vị trí đầu tiên trong bảng dữ liệu)

– Page 2, offset lần này sẽ bắt đầu từ vị trí thứ 10

– Page 3, offset lần này sẽ bắt đầu từ vị trí thứ 20

– Tương tự như vậy cho đến page cuối cùng.

Chúng ta có thể thấy:

$offset  =  ($page – 1*  $limit;

Thông thường, biến page sẽ được truyền lên qua URL. Nên bạn có thể lấy thông qua việc sử dụng hàm `$_GET[‘page’]` của PHP để lấy.

Phân trang là một kỹ thuật quan trọng giúp tối ưu hóa hiệu suất trang web và cải thiện trải nghiệm người dùng. Qua bài viết này, bạn đã học được cách thực hiện phân trang với MySQL và PHP thông qua các bước cụ thể từ thiết kế cơ sở dữ liệu, kết nối, truy vấn và hiển thị dữ liệu. Với những kiến thức này, bạn có thể áp dụng vào các dự án thực tế của mình để quản lý và hiển thị dữ liệu một cách hiệu quả hơn.


P.A Việt Nam cung cấp đa dạng các Plan Hosting WordPress đáp ứng yêu cầu của khách hàng
WordPress Hosting phổ thông
WordPress Hosting chất lượng cao
WordPress VIP

Tham khảo các bài viết liên quan đến wordpress hosting : https://kb.pavietnam.vn/category/phan-mem/open-source/wordpress

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

Rate this post