PHP+MySQL实现分页功能

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>&nbsp;<?php echo $page;?>页,共<?php echo $count;?>&nbsp;</td>
            <td>
                <?php 
                if($page!=1){
                    echo '<a  href=index.php?page=1>首页</a>&nbsp;';
                    echo "<a  href=index.php?page=".($page-1).">上一页</a>&nbsp;";
                } 
                if($page<$count){
                    echo "<a href=index.php?page=".($page+1).">下一页</a>&nbsp;";
                    echo "<a href=index.php?page=".$count.">尾页</a>";
                }
                    $connID=null;//释放链接
                ?>
            </td>
        </tr>
    </table>
</body>
</html>

如有疑问,可以关注微信公众号【一个bug的自我修养】帮您解答疑问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值