后台管理列表分页封装

今天整理下PHP后台分页封装:



其大致的原理,就是通过$_REQUEST[‘page’]获取当前的页码数,来渲染要生成的页码列表,每次点击新的页码就会重新渲染

封装这个函数需要哪些参数:

(1)       当前要渲染的页码值

(2)       总的页码数

(3)       其他search条件 &cid=2&pid=6 …

 

function showPage($page, $totalPages, $where = null)
{       

         $url = $_SERVER['PHP_SELF'];

         $sep = '  ';

         $where = $where == null ? null : '&'.$where;

         $p = "";

 

         //拼凑分页链接

         $indexLinkStr = ($page == 1) ? "首页" : "<a href="{$url}?page=1{$where}">首页</a>";

         $lastLinkStr = ($page == $totalPages) ? "尾页" : "<a href="{$url}?page={$totalPages}{$where}">尾页</a>";

         $prevLinkStr = ($page == 1) ? "上一页" : "<a href="{$url}?page='.($page-1).'{$where}">上一页</a>";

         $nextLinkStr = ($page == $totalPages) ? "下一页" : "<a href="{$url}?page='.($page+1).'{$where}">下一页</a>";

         $cTotalStr = "总共{$totalPages}页,当前{$page}页";

 

         //分页链接

         for($i = 1;$i<=$totalPages;$i++)
         {

                   if($page == $i)
                   {

                            $p .= "[{$i}]";
                   }
                   else

                   {

                            $p .= "<a href="{$url}?page={$i}{$where}">[{$i}]</a>";

                   }

         }

 

         echo $cTotalStr.'<br/>'.$indexLinkStr.$sep.$prevLinkStr.$sep.$p.$sep.$nextLinkStr.$sep.$lastLinkStr;

}

 

 

在某个页面加载数据列表的时候,调用分页:

 

条件:

1)每页要显示的记录数

2)总共的记录数

3)如果每页要显示的记录数 >总共的记录数 = 才显示分页,也就是调用分页函数

 

获取$page等参数的判断条件:

 

if(@!!$_REQUEST['page']){

         $page = (int)$_REQUEST['page'];

}else{

         $page = 1;

}

 

//页码判断 防止在浏览器地址栏更改不正确的页码

if($page < 1 || $page == null || !is_numeric($page)){

         $page = 1;

}


//判断尾页 防止地址栏输入的值大于总页数

if($page > $totalPages){

         $page = $totalPages;

}

 

总的分页调用封装:

 

//管理员分页封装

function getAdminPage($pageSize = 2)
{

         $link = connect();

         $sql = "select * from imooc_admin";

         $totalRows = getResultNum($link,$sql); //获取总记录数

 

         //地址首页页码判断
         if(@!!$_REQUEST['page']){

                   $page = (int)$_REQUEST['page'];

         }else{

                   $page = 1;

         }

 

         //页码判断 防止在浏览器地址栏更改不正确的页码
         if($page < 1 || $page == null || !is_numeric($page)){

                   $page = 1;

         }

 

         //获取页码总数和页码的偏移量 好进行数据库limit查询
         //每页多少条$pageSize
         $totalPages = ceil($totalRows/$pageSize); //页码数

         $offset = ($page - 1)*$pageSize; //记录数偏移量

 

         //获取当前页码对应的页面
         $termWhere = "limit {$offset} , {$pageSize}";

 

         //判断尾页 防止地址栏输入的值大于总页数
         if($page > $totalPages){

                   $page = $totalPages;

         }

 

         $rowsData = listAdminData($termWhere);

         if(!$rowsData)
         {

                   alertMes('当前没有用户信息,请先添加!','addAdmin.php');

         }

 

         $arr = array();

         $arr['rowsData'] = $rowsData;

         $arr['page'] = $page;

         $arr['totalPages'] = $totalPages;

         $arr['totalRows'] = $totalRows;

 

         return $arr;

}

 

 

列表页面接收:

 

         

$pageSize = 3;

$array = getAdminPage($pageSize);

$rowsData = $array['rowsData'];

$page = $array['page'];

$totalPages = $array['totalPages'];

$totalRows = $array['totalRows'];


 帅有个屁用!到头来还不是被卒吃掉!

猜你喜欢

转载自blog.csdn.net/wu5229485/article/details/79783195
今日推荐