zoukankan      html  css  js  c++  java
  • php分页原理

    <?php
    1.分页原理
    
    所需数据:
    总记录数: $records  mysql_num_rows()
    每页显示: $pagesize 人为定义10
    总页数:   $pages    $records/$pagesize
    当前页:   $page   自己选择
    
    
    
    2.分页的sql语句: SELECT * FROM news limit 0,10;  //每次从数据库取10条数据
    
    limit 语句的格式:
    $startnow:开始行号 $pagesize:每页显示多少条
    limit $startnow,$pagesize
    
    
    第1页 $page = 1   limit 0,10  从0条起取10条数据
    第2页 $page = 2   limit 10,10
    第3页 $page = 3   limit 20,10
    ........
    
    $startnow = ($page-1) * $pagesize;
    
    
    3.
    //分页相关变量
    $pagesize = 10; //每页取10条数据
    //获取地址栏中用户点击后地址栏传递过来的page参数(第几页)
    if(empty($_REQUEST['page'])){
        $page =1;
        $startnow =0;
    }else{
        $page = (int)$_REQUEST['page'];
        $startnow = ($page-1) * $pagesize;
    }
    
    //构建sql语句
    $sql = select * from vvt_news; //可以取出结果分页中再排序
    //执行sql语句
    $result = mysql_query($sql);
    //返回记录总数
    $records = mysql_num_rows($result);
    //获取总页数
    $pages =  ceil($records/$pagesize); 
    
    //构建分页的sql语句
    $sql = "select * from vvt_news order addtime ASC,by id DESC LIMIT $startnow,$pagesize";
    //执行sql语句 返回结果集
    $result = mysql_query($sql); //结果集 可以取前端循环
    
    $this->set('list', $result); //发送到前台 遍历循环
    
    
    
    
    
    4.前台底部分页样式
    
    <style type="text/css">
    .pagelist{
        height:40px;
        line-height:40px;
    }
    .pagelist a{
        border:1px solid #ccc;
        background-color:#f0f0f0;
        padding:3px 8px;
        margin:0px; 3px;
    
    }
    .pagelist span {
        margin:3px 10px;
    }
    </style>
    
    <tr>
        <td colspan="8" align="center" class="pagelist">
        <?php
            for ($i=1; $i<$pages ; $i++) { 
                //如果是当前页则不加链接
                if($i==$page){
                    echo "<span>$i</span>";
                }else{
                    echo "<a href='magin.php?page=$i'>$i</a>";    
                }
                
            }
        ;?>
        </td>
    </tr>
    
    -->2
    
    <tr>
        <td colspan="8" align="center" class="pagelist">
        <?php
            $prev=$page-3;
            $next=$page+3;
            for ($i=$prev; $i<$next ; $i++) { 
                //如果是当前页则不加链接
                if($i==$page){
                    echo "<span>$i</span>";
                }else{
                    echo "<a href='magin.php?page=$i'>$i</a>";    
                }
                
            }
        ;?>
        </td>
    </tr>
    
    
    -->3
    
    <tr>
        <td colspan="8" align="center" class="pagelist">
        <?php
            $prev=$page-3;
            $next=$page+3;
            if($prev<1){
                $prev=1;
            }
            if($nest > $pages){
                $next=$pages;
            }
            for ($i=$prev; $i<$next ; $i++) { 
                //如果是当前页则不加链接
                if($i==$page){
                    echo "<span>$i</span>";
                }else{
                    echo "<a href='magin.php?page=$i'>$i</a>";    
                }
                
            }
        ;?>
        </td>
    </tr>
    
    
    -->4 判断当前页小于4,让分页始终保持7个
  • 相关阅读:
    难以捉摸?机器学习模型的可解释性初探
    什么是边缘计算?它将如何补充5G?
    2021年将会成为主流的四个云计算技术
    中国SaaS这个局,AI能破吗?
    边缘计算点燃新风暴,IT与OT之战一触即发
    为什么保护云安全是一个数学问题
    物联网中的热门IT技能
    2021 区块链及数字货币9大展望
    边缘计算将取代云计算?5G时代的最强黑马出现了吗?
    2021年区块链十大发展趋势:那些偶然中的必然
  • 原文地址:https://www.cnblogs.com/yangzailu/p/7744384.html
Copyright © 2011-2022 走看看