PHP+MySQL实现分页功能
- 实例:(表的详细信息在最下面)
- 表结构部分:
- 数据库字符集:
- MySQL创建表的SQL语句:(直接复制可用)
CREATE TABLE `tb_page` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`title` varchar(24) NOT NULL,
`link` varchar(64) NOT NULL,
`datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`count` int(8) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8
- 代码块部分:(直接复制可用)
关于PHP连接数据库,可具体参照:https://blog.csdn.net/qq_43405812/article/details/105985123
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table{width:700px;text-align: center;}
</style>
</head>
<body>
<!--链接MySQL数据库,使用的是PDO的链接方法-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table{width:700px;text-align: center;}
</style>
</head>
<body>
<!--链接MySQL数据库,使用的是PDO的链接方法-->
<?php
$dbms='mysql';
$host='localhost';
$dbName='bolg';//本地数据库名
$user='root';
$pass='';
$dsn="$dbms:host=$host;dbname=$dbName";
try{
$connID = new PDO($dsn,$user,$pass);
$connID->exec('set names utf8');
}catch(PDOException $e){
die("ERROR!".$e->getMessage()."<br>");
}
?>
<table border="1" align="center">
<?php
if(isset($_GET['page'])){
$page=$_GET['page'];
}else{
$page=1;
}
$res=$connID->prepare("select id from tb_page;");
$res->execute();
$all=count($res->fetchall(PDO::FETCH_ASSOC));//总记录数
$offset=($page-1)*5;//计算下一页从第几条数据开始循环
$count=ceil($all/5);
$sql=$connID->prepare("select * from tb_page limit $offset, 5;");
$sql->execute();
$result=$sql->fetchAll(PDO::FETCH_ASSOC);
?>
<!--题目一栏-->
<tr>
<td>题目</td>
<td>链接</td>
<td>上传时间</td>
<td>收藏人数</td>
</tr>
<?php
for($i=0;$i<count($result);$i++){?>
<tr>
<td><?php print_r($result[$i]['title']);?></td>
<td><?php print_r($result[$i]['link']);?></td>
<td><?php print_r($result[$i]['datetime']);?></td>
<td><?php print_r($result[$i]['count']);?></td>
</tr>
<?php }?>
</table>
<table align="center">
<tr align="center">
<td>第 <?php echo $page;?>页,共<?php echo $count;?>页 </td>
<td>
<?php
if($page!=1){
echo '<a href=index.php?page=1>首页</a> ';
echo "<a href=index.php?page=".($page-1).">上一页</a> ";
}
if($page<$count){
echo "<a href=index.php?page=".($page+1).">下一页</a> ";
echo "<a href=index.php?page=".$count.">尾页</a>";
}
$connID=null;//释放链接
?>
</td>
</tr>
</table>
</body>
</html>
如有疑问,可以关注微信公众号【一个bug的自我修养】帮您解答疑问!