1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình web nâng cao: Chương 11 - Trường ĐH Văn Hiến

9 4 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 1,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Lập trình web nâng cao: Chương 11 Phân trang dữ liệu, cung cấp cho người học những kiến thức như: Kỹ thuật cơ bản dựa trên câu lệnh Select; phương pháp xây dựng các link để điều khiển trang. Mời các bạn cùng tham khảo!

Trang 2

02

03

04

05

03 03

Trang 3

02

Phân Trang Dữ Liệu

 Kỹ thuật cơ bản dựa trên câu lệnh Select … limit start, total

Mỗi trang sẽ hiển thị total records, bắt đầu từ reocord thứ start

Record đầu tiên có thứ tự là 0

 Có nhiều phương pháp xây dựng các link để điều khiển trang

Pre 1 2 3 4 5 Next

Giả sử test.php là trang PHP có chức năng hiển thị trang thứ $I với số record là $PageSize, tùy theo $i mà xác định

$start để xây dựng câu

lệnh Select cho từng lựa chọn

Phương pháp ưa thích được lựa chọn là sử dụng :

Trang 4

01 02 04

Phân Trang Dữ Liệu (tt)

05

Trong ứng dụng này, ta có 4 module:

 Connect.inc có chức năng kết nối đến CSDL, sử dụng các hàm:

mysql_connect() và msql_select_db()

Trong lập trình CSDL, module này cần thiết kế tốt và lưu dưới một file inc riêng, trang nào cần thì include vào

 Init.inc có chức năng khởi tạo các biến chung để điều khiển link

 Test.php là trang chính, có chức năng hiển thị nội dung trang với các record bắt đầu từ $start đến ($start+$pagesize-1), bao gồm Connect.inc, Init.inc và Link.inc

Link.inc có chức năng tạo ra các liên kết dạng Prev 1 2 3 4 Next

Trong nhiều chương trình, LTV xây dựng hẵn một Class để truy cập CSDL Sinh viên xem trong phần Bài đọc thêm PHP trên website của giảng viên về nội dung này

Trang 5

02

Phân Trang Dữ Liệu (tt)

Tệp Connect.inc

<?php

$servername='localhost'; // Server Name hay địa chỉ IP dều được

$dbusername='root'; // Login user name

$dbpassword='root'; // User’s password

$dbname='paging'; // Tên CSDL MySQL cần thiết

connecttodb($servername,$dbname,$dbusername,$dbpassword);

function connectdb($svn,$dbn,$dbu,$db){

global $con; //$con sẽ dùng trong một số câu lệnh msql_

Trang 6

02

04

Phân Trang Dữ Liệu (tt)

05

Tệp Init.inc

<?php

$pagesize=15; // Mỗi trang hiển thị 15 record, trừ trang cuối có thế ít hơn

$start=$_GET['start'];

$start=($start-0); // chuyển $start thành số tự nhiên //Ban dau khong GET nen $start="" =>($start-0)=0;

$back = $start - $pagesize;

$next = $start + $pagesize;

$query="select * from Student";

$result=mysql_query($query);

$totalRecords=mysql_num_rows($result); // Total records of recordset

Trang 7

02

Phân Trang Dữ Liệu (tt)

Tệp Test.php

<?php

include("config.php");

include("init.inc");

mysql_query("SET NAMES 'utf8'");

$query="select * from Student limit $start,$pagesize";

$result=mysql_query($query);

$i=1;

while($row = mysql_fetch_array($result)){

Trang 8

02

04

Phân Trang Dữ Liệu (tt)

05

Tệp Link.inc

<?php echo "<hr>";

if($totalRecords > $pagesize ){

if($back >=0) {echo "<a href='test.php?start=$back'>Prev</a>"; }

$i=0; // theo dõi số thứ tự các record

$j=1; // theo số thứ tự của trang để tạo liên kết

for($i=0;$i < $totalRecords;$i+=$pagesize){

if($i <> $start){echo " <a href='test.php?start=$i'>$j</a> ";

} else { echo $j;}

$j=$j+1; }

if($next < $totalRecords) {echo "<a href='test.php?start=$next'>Next</a>";}

Trang 9

Trân trọng cảm ơn!

Hỏi Đáp ?

Ngày đăng: 25/10/2022, 10:06

🧩 Sản phẩm bạn có thể quan tâm