zoukankan      html  css  js  c++  java
  • PHP基于数组的分页函数(核心函数array_slice())

    /**
     * 数组分页函数  核心函数  array_slice
     * 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中
     * $count   每页多少条数据
     * $page   当前第几页
     * $array   查询出来的所有数组
     * order 0 - 不变     1- 反序
     */ 
    
    function page_array($count,$page,$array,$order){
           global $countpage; #定全局变量
        $page=(empty($page))?'1':$page; #判断当前页面是否为空 如果为空就表示为第一页面 
           $start=($page-1)*$count; #计算每次分页的开始位置
        if($order==1){
          $array=array_reverse($array);
        }   
        $totals=count($array);  
        $countpage=ceil($totals/$count); #计算总页面数
           $pagedata=array();
        $pagedata=array_slice($array,$start,$count);
           return $pagedata;  #返回查询数据
    }
    /**
     * 分页及显示函数
     * $countpage 全局变量,照写
     * $url 当前url
     */
    function show_array($countpage,$url){
         $page=empty($_GET['page'])?1:$_GET['page'];
         if($page > 1){
               $uppage=$page-1;
    
         }else{
             $uppage=1;
         }
    
         if($page < $countpage){
               $nextpage=$page+1;
    
         }else{
                $nextpage=$countpage;
         }
           
            $str='<div style="border:1px; 300px; height:30px; color:#9999CC">';
        $str.="<span>共  {$countpage}  页 / 第 {$page} 页</span>";
        $str.="<span><a href='$url?page=1'>   首页  </a></span>";
        $str.="<span><a href='$url?page={$uppage}'> 上一页  </a></span>";
        $str.="<span><a href='$url?page={$nextpage}'>下一页  </a></span>";
        $str.="<span><a href='$url?page={$countpage}'>尾页  </a></span>";
        $str.='</div>';
        return $str;
    }
    测试:
    $arrTr = array(
            0=>array(1,'张三','100.00','新手','1988-06-12'),
            1=>array(2,'李四','110.00','新手','1989-06-12'),
            2=>array(3,'王五','120.00','新手','1998-06-12'),
            3=>array(4,'赵六','130.00','新手','1980-06-12'),
            );
        
        $count = 2;
        $page=empty($_GET['page'])?1:$_GET['page'];
        $d = page_array($count,$page,$arrTr,0);
        foreach($d as $v){
            echo $v[0].'--'.$v[1].'--'.$v[2].'--'.$v[3].'--'.$v[4]."
    
    ";
        }
        echo show_array($countpage,'');

    关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页函数的操作及显示,需要配合使用.两个函数通过全局变量$countpage发生联系,此变量用于跟踪总页码数.

  • 相关阅读:
    UNDO表空间的ORA1122错误解决(二)转
    Oracle 碎片整理
    如何解决Ora00600 4194错误转自eygle
    Oracle维护常用sql语句
    ORA01152: file 1 was not restored from a sufficiently old backup
    oracle的一些信息抽取脚本.sql
    Flash Recovery Area空间不足导致数据库不能打开
    HP—UNIX的信息收集脚本
    详细解读 STATSPACK 报告
    OLTP和OLAP
  • 原文地址:https://www.cnblogs.com/phpfensi/p/4503103.html
Copyright © 2011-2022 走看看