1. 程式人生 > >PHP實現資料庫資料的分頁

PHP實現資料庫資料的分頁

一、實現思路:

1. 使用bootstrap框架,實現資料庫的連線,以及sql指令的執行;

2.寫html中的table程式碼,用bootstrap中的表格樣式進行修飾;

3.在分頁的連結上新增引數;

4.獲得當前的頁號;

5.控制翻頁(向上不得超過第一頁,向下不得超過最後一頁);

6.獲得總頁數;

7.求得總頁數;

8.求得每一頁開始的第一條資料的索引號;

二、舉個例子吧:連線本地myschool資料庫

<?php
header("content-type:text/html;charset=utf-8");
//設定時間為北京時間
date_default_timezone_set('PRC');
//預定義變數$_GET,該陣列儲存的是以get方式儲存的資料
const PAGE_SIZE = 2;//每頁多少條記錄
$page = 1;//預設為第一頁
if(isset($_GET['page'])){
	$page = $_GET['page'];
}
//連線資料庫
$conn = @new mysqli("localhost",'root','','mysclool');
//檢測資料庫是否連線成功
if($conn -> connect_error){
	die("資料庫連線失敗");
}
//設定編碼格式
$conn -> set_charset('utf8');

//獲取資料庫中的表有多少行
$sql = "select count(*) from user";
//執行sql語句
$res = $conn -> query($sql);
//判斷能寫幾頁
$length = $res ->fetch_row();
$count = $length[0];
$len = ceil($count/PAGE_SIZE);
//每次從第幾個索引開始
$index = ($page-1)*PAGE_SIZE;
//建立sql指令 實現每頁返回特定的資料量
$sql = "select id,user,create_time from user limit $index,".PAGE_SIZE;
//執行sql指令
$res = $conn -> query($sql);
// print_r($res);
// exit;
//檢測sql指令是否正確
if($res === false){
	die("執行sql指令出錯");
}
//獲取結果集
$arr = [];
while($row = $res -> fetch_assoc()){
	$arr[] = $row;
}
//釋放結果集
$res -> free();
//關閉資料庫
$conn-> close();
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<link rel="stylesheet" type="text/css" href="bootstrap-3.3.7-dist\css\bootstrap.min.css">
	<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
	<script type="text/javascript" src="bootstrap-3.3.7-dist\js\bootstrap.min.js"></script>
</head>
<body>
<div class="container">
	<div class="panel panel-primary">
		<div class="panel panel-heading">使用者資訊表</div>
		<table class="table table-bordered table-striped table-hover">
			<tr>
				<td>使用者名稱</td>
				<td width="200">建立日期</td>
			</tr>
            //使用foreach迴圈向表格中新增資料
			<?php foreach ($arr as $row) { ?>
				<tr>
					<td><?php echo $row['user'] ?></td>
					<td><?php echo  date('Y-m-d H:i:s',$row['create_time']) ?></td>
				</tr>
			<?php } ?>
		</table>
		<nav aria-label="...">
			<ul class="pager">
			<?php if($page-1 >0){ ?>
				<li><a href="<?php echo $_SERVER['PHP_SELF'] ?>?page=<?php echo $page-1 ?>">上一頁</a></li>
			<?php } ?>
			<?php if($page+1 <=$len){ ?>
				<li><a href="<?php echo $_SERVER['PHP_SELF'] ?>?page=<?php echo $page+1 ?>">下一頁</a></li>
			<?php } ?>
			</ul>
		</nav>
	</div>
</div>
</body>
</html>

注意:1.邏輯思維能力要好,清楚下一步該做什麼;

            2.$_GET、$_SERVER的使用;

            3.要關閉資料庫連線,以及釋放結果集;