zhangyanchong
<?php

$phpfile = \'test.php\';//页面文件名 
$page= isset($_GET[\'page\'])?$_GET[\'page\']:1;//默认页码 
$counts = 1000;//获取需要的数据总条数 
$getpageinfo = page($page,$counts,$phpfile);//调用函数,生成分页HTML 和 SQL LIMIT 子句 
echo $getpageinfo[\'pagecode\'];//显示分页的html代码 


function page($page,$total,$phpfile,$pagesize=10,$pagelen=10){ 
    $pagecode = \'\';//定义变量,存放分页生成的HTML 
    $page = intval($page);//避免非数字页码 
    $total = intval($total);//保证总记录数值类型正确 
    if(!$total) return array();//总记录数为零返回空数组 
    $pages = ceil($total/$pagesize);//计算总分页 
    //处理页码合法性 
    if($page<1) $page = 1; 
    if($page>$pages) $page = $pages; 
    //计算查询偏移量 
    $offset = $pagesize*($page-1); 
    //页码范围计算 
    $init = 1;//起始页码数 
    $max = $pages;//结束页码数 
    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数 
    $pageoffset = ($pagelen-1)/2;//页码个数左右偏移量 
     
    //生成html 
    $pagecode=\'<div class="page">\'; 
    $pagecode.="<span>$page/$pages</span>";//第几页,共几页 
    //如果是第一页,则不显示第一页和上一页的连接 
    if($page!=1){ 
        $pagecode.="<a href=\"{$phpfile}?page=1\">首页</a>";//第一页 
        $pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\">上一页</a>";//上一页 
    } 
    //分页数大于页码个数时可以偏移 
    if($pages>$pagelen){ 
        //如果当前页小于等于左偏移 
        if($page<=$pageoffset){ 
            $init=1; 
            $max = $pagelen; 
        }else{//如果当前页大于左偏移 
            //如果当前页码右偏移超出最大分页数 
            if($page+$pageoffset>=$pages+1){ 
                $init = $pages-$pagelen+1; 
            }else{ 
                //左右偏移都存在时的计算 
                $init = $page-$pageoffset; 
                $max = $page+$pageoffset; 
            } 
        } 
    } 
    //生成html 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-01-04
  • 2022-02-08
  • 2022-01-26
  • 2022-02-19
  • 2021-11-29
猜你喜欢
  • 2022-12-23
  • 2021-12-08
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
相关资源
相似解决方案