搜索
博主信息
博文 48
粉丝 0
评论 0
访问量 44520
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
分页查询
雨天的博客
原创
1169人浏览过

模型层

实例

<?php
/**
 * 分页查询
 */

namespace model;


class Model
{
    //每页显示条数
    private $num;

    //数据库链接
    private $pdo;

    //查询起始偏移数量
    private $offset;

    function __construct($num)
    {
        $this->num = $num;
        //获取当前的页

        $this->offset = ($this->getPage()-1)*$this->num;
    }
    //获取当前页
    public function getPage()
    {
       return  isset($_GET['page'])?$_GET['page']:1;
    }
    //数据库链接
    public function connect()
    {
        try{
            $this->pdo = new \PDO('mysql:host=127.0.0.1;dbname=certificates','root','root');

        }catch (\PDOException $e)
        {
          die($e->getMessage());
        }
    }
    //获取总页数
    public function getPages($table)
    {
        $sql = "select count(*) from {$table}";
        $stmt = $this->pdo->prepare($sql);
        //var_dump($stmt);
        $stmt->execute();
        $res = $stmt->fetchColumn(0);
        $pages = ceil($res/$this->num);
        return $pages;
    }
    //获取数据
    public function getData($table){
        $stmt1 = $this->pdo->prepare("select id,name,score from {$table} limit {$this->offset},{$this->num}");
        $stmt1->execute();
        $rows = $stmt1->fetchAll(\PDO::FETCH_ASSOC);
        return $rows;
    }


}

运行实例 »

点击 "运行实例" 按钮查看在线实例

分页模板页面

实例

<!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>
<style>
    table,tr,td,th{width: 400px;margin:30px auto;border-collapse: collapse;border: 1px solid #000;text-align: center}
    tr{line-height: 30px;}
    th{background:#008800;color: #fff;}
    caption{padding: 20px 0;font-size: 1.5rem;}
    .pages{text-align: center;}
    a{text-decoration: none;padding:5px 10px;display: inline-block;border: solid 1px #008800;color:#008800;margin: 5px;}
    form{display: inline-block}
    .hover{background:#008800;color: #FFF;}
</style>
<?php
    require 'inc/Model.php';
    use model\Model;
    $obj = new Model('20');
    $obj->connect();
    $page = $obj->getPage();
    $pages = $obj->getPages('certificates');
    $data = $obj->getData('certificates');
?>
<table>
    <caption>学生成绩表</caption>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>分数</th>
    </tr>
    <?php foreach ($data as $value):?>
        <tr>
            <td><?php echo $value['id'] ?></td>
            <td><?php echo $value['name'] ?></td>
            <td><?php echo $value['score'] ?></td>
        </tr>
    <?php endforeach;?>
</table>
<div class="pages">
    <!--  当前页不等于1显示首页和上一页  -->
    <?php if($page!=1):?>
        <a href="<?php $_SERVER['PHP_SELF']?>?page=1">首页</a>
        <a href="<?php $_SERVER['PHP_SELF']?>?page=<?php echo (($page-1)==0)?1:($page-1);?>">上一个</a>
    <?php endif;?>
<!--  生成中间页  -->

    <?php for($i=1; $i<=$pages; $i++): ?>
    <!------高亮显示当前页码----------->
        <a class="<?php if($page==$i){echo 'hover';}?>" href="<?php $_SERVER['PHP_SELF']?>?page=<?php echo $i ?>"><?php echo $i ?></a>
    <?php endfor; ?>
    ?>

<!-- 显示下一页和尾页-->
    <?php if($page!=$pages):?>
        <a href="<?php $_SERVER['PHP_SELF']?>?page=<?php echo (($page+1)>$pages)?$pages:($page+1);?>">下一页</a>
        <a href="<?php $_SERVER['PHP_SELF']?>?page=<?php echo $pages;?>">末页</a>
    <?php endif;?>
    <form action="">第:
        <select name="page" id="" >
            <?php for($i=1;$i<$pages;$i++):?>
                <option value="<?php echo $i;?>" <?php if($page==$i) {echo 'selected';}?>><?php echo $i;?></option>
            <?php endfor;?>
        </select> 页
        <button>跳转</button>
    </form>
</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学