Home  >  Article  >  Backend Development  >  Examples of paging principles in php

Examples of paging principles in php

黄舟
黄舟Original
2017-10-28 09:46:462206browse

Examples of paging principles in 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[&#39;page&#39;])){
    $page =1;
    $startnow =0;
}else{
    $page = (int)$_REQUEST[&#39;page&#39;];
    $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(&#39;list&#39;, $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=&#39;magin.php?page=$i&#39;>$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=&#39;magin.php?page=$i&#39;>$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=&#39;magin.php?page=$i&#39;>$i</a>";    
            }
            
        }
    ;?>
    </td>
</tr>


-->4 判断当前页小于4,让分页始终保持7个

The above is the detailed content of Examples of paging principles in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn