请选择 进入手机版 | 继续访问电脑版
绿茶科技社区
一般情况下我都会把数据库读取做一个专用类,里面包括有对数据库的操作,包括分页等,这样用起来方便。主要的代码有两段:
一、读取数据库并转化为分页数组
代码如下:
  1. <?php   

  2.     private function rs2array($sql='',$filename='',$pagesize=0){//生成二维数组   

  3.             $autopage=false;   

  4.             if (!isset($sql))die("未设置语句!");   

  5.             $str=array();   

  6.             $result = $this->Open_Db($sql);   

  7.             $this->recordcount=$result->recordcount;   

  8.             if ((isset($filename)) && ($pagesize!=0)){//分页开始   

  9.                 $autopage=true;   

  10.                 $FilesName = $filename;   

  11.                 $result->pagesize=$pagesize;   

  12.                 $page=$_GET['page'];   

  13.                 if (($page!='') && (is_numeric($page))){   

  14.                     $epage = $page;   

  15.                     if ($epage<1)$epage=1;   

  16.                     if ($epage>$result->pagecount)$epage = $result->pagecount;   

  17.                 }else{   

  18.                     $epage=1;   

  19.                 }   

  20.                 if(!$result->eof)$result->Absolutepage=$epage;   

  21.                 $whileNum=$result->pagesize;   

  22.             }   

  23.             if(!isset($whileNum))$whileNum=$result->recordcount;   

  24.             for($i=1;$i<=$whileNum;$i++){   

  25.                 if($result->eof)break;   

  26.                 for($n=0;$n<=($result->fields->count-1);$n++){   

  27.                     $str[$i-1][$result[$n]->name] = $result[$n]->value;   

  28.                 }   

  29.                 $result->movenext();   

  30.             }   

  31.             if($autopage==true)$this->page = $this->Paging($filename,$result->pagecount,$epage);   

  32.             $result->close();   

  33.             return $str;   

  34.         }   

  35. ?>
复制代码
二、供调用的分页代码
  1. <?php   

  2.     static private function Paging($FilesName,$PageCount,$page){   

  3.     $PageStr="";   

  4.     $topname='第一页';   

  5.     $bottomname='最末页';   

  6.     $overname='上一页';   

  7.     $upname='下一页';   

  8.     $p=$FilesName.'page=';   

  9.             if ($PageCount>1){   

  10.                 if ($page<=1){   

  11.                     $page=1;   

  12.                     $PageStr='当前第 '.$page.' / '.$PageCount.' 页 ['.$topname.'] ['.$overname.'] <a href="'.$p.($page+1).'">['.$upname.']</a> <a href="'.$p.($PageCount).'">['.$bottomname.']</a>';   

  13.                 }else if($page>=$PageCount){   

  14.                     $page=$PageCount;   

  15.                     $PageStr='当前第 '.$page.' / '. $PageCount . ' 页 <a href="'.$p.(1).'">['.$topname.']</a> <a href="'.$p.($page-1).'">['.$overname.']</a> ['.$upname.'] ['.$bottomname.']';   

  16.                 }else{   

  17.                     $PageStr='当前第 ' . $page . ' / '. $PageCount . ' 页 <a href="'.$p.(1).'">['.$topname.']</a> <a href="'.$p.($page-1).'">['.$overname.']</a> <a href="'.$p.($page+1).'">['.$upname.']</a> <a href="'.$p.($PageCount).'">['.$bottomname.']</a>';   

  18.                 }   

  19.             }else{   

  20.                 $PageCount=1;   

  21.                 $page=1;   

  22.                 $PageStr=('当前第 ' . $page) . ' / '. $PageCount . ' 页 ['.$topname.'] ['.$overname.'] ['.$upname.'] ['.$bottomname.']';   

  23.             }   

  24.             return $PageStr;   

  25.         }   

  26. ?>
复制代码
我觉得这样在读取数据库的时候基本上不用担心分页会出什么问题,而且如果你多个网站栏目的话,分页都可以调用,非常方便。
以上代码不足之处还请指出,谢谢!

分享到 :
0 人收藏

3 个回复

倒序浏览
程序人生  金牌会员 | 2019-11-21 02:51:30
支持支持再支持
sparkdev  高级会员 | 2019-12-8 11:34:14
我也来顶一下..
老翅寒暑  金牌会员 | 2019-12-15 09:02:59
向楼主学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

举报|Archiver|手机版|小黑屋|Lvchakeji Inc.  

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部