Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiele für Paging-Prinzipien in PHP

Beispiele für Paging-Prinzipien in PHP

黄舟
黄舟Original
2017-10-28 09:46:462187Durchsuche

Beispiele für Paging-Prinzipien 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个

Das obige ist der detaillierte Inhalt vonBeispiele für Paging-Prinzipien in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn