批改状态:合格
老师批语:
1、总结分页的偏移量和查询原理。
在数据库中可以分页查询数据。比如偏移量设置成5,就是从第六第数量开始查询。如果设置成10,就是从第十条数据开始查询。所以在计算偏移量的时候,可以利用从$_GET获取过来的参数,通过(页码-1)*显示数据的方面来获取偏移的数值。
<?php
/**
* 分页查询
*/
$pdo = new PDO('mysql:host=localhost;dbname=php','root','root');
$page = isset($_GET['P']) ? $_GET['P'] : 1; //获取P的参数,因为get就是以P=*这样来传的,所以知道 P等于几就可以判断分页了
$pages = ($page-1)*5;//通过分析可以得出,(P-1)*5就是要查询的数据库表中的位置开始查询
$stmt = $pdo->prepare("SELECT * FROM `user` LIMIT {$pages},5");
$stmt->execute();
$srult = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `user`");//查询所有数据库所有数据
$stmt->execute();
$rows = $stmt->fetchColumn(0);//获取返回的记录条数,从0开始算
$pages = ceil($rows / 5);//除以5就可以算出多少页,利用ceil来取整数
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<table>
<caption>员工表</caption>
<tr>
<td>编号</td>
<td>姓名</td>
<td>邮箱</td>
<td>年龄</td>
</tr>
<?php foreach ($srult as $srults): ?>
<tr>
<td><?php echo $srults['id']; ?></td>
<td><?php echo $srults['name']; ?></td>
<td><?php echo $srults['email']; ?></td>
<td><?php echo $srults['age']; ?></td>
</tr>
<?php endforeach; ?>
<a href="http://127.0.0.1/page/demo1.php?P=1">首页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page-1)==0) ? 1 : ($page-1); ?>"">上一页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page+1)>$pages) ? $pages : ($page+1); ?>"">下一页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo $pages; ?>">尾页</a>
</table>
</body>
</html>点击 "运行实例" 按钮查看在线实例
<?php
/**
* 分页查询
*/
$pdo = new PDO('mysql:host=localhost;dbname=php','root','root');
$page = isset($_GET['P']) ? $_GET['P'] : 1; //获取P的参数,因为get就是以P=*这样来传的,所以知道 P等于几就可以判断分页了
$pages = ($page-1)*5;//通过分析可以得出,(P-1)*5就是要查询的数据库表中的位置开始查询
$stmt = $pdo->prepare("SELECT * FROM `user` LIMIT {$pages},5");
$stmt->execute();
$srult = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `user`");//查询所有数据库所有数据
$stmt->execute();
$rows = $stmt->fetchColumn(0);//获取返回的记录条数,从0开始算
$pages = ceil($rows / 5);//除以5就可以算出多少页,利用ceil来取整数
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<table>
<caption>员工表</caption>
<tr>
<td>编号</td>
<td>姓名</td>
<td>邮箱</td>
<td>年龄</td>
</tr>
<?php foreach ($srult as $srults): ?>
<tr>
<td><?php echo $srults['id']; ?></td>
<td><?php echo $srults['name']; ?></td>
<td><?php echo $srults['email']; ?></td>
<td><?php echo $srults['age']; ?></td>
</tr>
<?php endforeach; ?>
<a href="http://127.0.0.1/page/demo1.php?P=1">首页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page-1)==0) ? 1 : ($page-1); ?>"">上一页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page+1)>$pages) ? $pages : ($page+1); ?>"">下一页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo $pages; ?>">尾页</a>
</table>
<form>
第
<select name="P" id="1">
<?php for ($i=1;$i<=$pages;$i++): ?>
<option><?php echo $i; ?></option>
<?php endfor; ?>
</select>
页
<button>提交</button>
</form>
</body>
</html>点击 "运行实例" 按钮查看在线实例
<?php
/**
* 分页查询
*/
$pdo = new PDO('mysql:host=localhost;dbname=php','root','root');
$page = isset($_GET['P']) ? $_GET['P'] : 1; //获取P的参数,因为get就是以P=*这样来传的,所以知道 P等于几就可以判断分页了
$pages = ($page-1)*5;//通过分析可以得出,(P-1)*5就是要查询的数据库表中的位置开始查询
$stmt = $pdo->prepare("SELECT * FROM `user` LIMIT {$pages},5");
$stmt->execute();
$srult = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `user`");//查询所有数据库所有数据
$stmt->execute();
$rows = $stmt->fetchColumn(0);//获取返回的记录条数,从0开始算
$pages = ceil($rows / 5);//除以5就可以算出多少页,利用ceil来取整数
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<table>
<caption>员工表</caption>
<tr>
<td>编号</td>
<td>姓名</td>
<td>邮箱</td>
<td>年龄</td>
</tr>
<?php foreach ($srult as $srults): ?>
<tr>
<td><?php echo $srults['id']; ?></td>
<td><?php echo $srults['name']; ?></td>
<td><?php echo $srults['email']; ?></td>
<td><?php echo $srults['age']; ?></td>
</tr>
<?php endforeach; ?>
<?php if ($page != 1): ?>
<a href="http://127.0.0.1/page/demo1.php?P=1">首页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page-1)==0) ? 1 : ($page-1); ?>"">上一页</a>
<?php endif; ?>
<?php for ($i=1;$i<=$pages;$i++): ?>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo $i; ?>"><?php echo $i; ?></a>
<?php endfor; ?>
<?php if ($pages != $page): ?>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page+1)>$pages) ? $pages : ($page+1); ?>"">下一页</a>
<a href="http://127.0.0.1/page/demo1.php?P=<?php echo $pages; ?>">尾页</a>
<?php endif; ?>
</table>
<form>
第
<select name="P" id="1">
<?php for ($i=1;$i<=$pages;$i++): ?>
<option><?php echo $i; ?></option>
<?php endfor; ?>
</select>
页
<button>提交</button>
</form>
</body>
</html>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号