好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

两步快速实现PHP分页功能,方便实用

一般情况下我都会把数据库读取做一个专用类,里面包括有对数据库的操作,包括分页等,这样用起来方便。主要的代码有两段:

一、读取数据库并转化为分页数组 :

代码如下:

<?php    
    private function rs2array($sql='',$filename='',$pagesize=0){//生成二维数组    
  $autopage=false;    
  if (!isset($sql))die("未设置语句!");    
  $str=array();    
  $result = $this->Open_Db($sql);    
  $this->recordcount=$result->recordcount;    
  if ((isset($filename)) && ($pagesize!=0)){//分页开始    
 $autopage=true;    
 $FilesName = $filename;    
 $result->pagesize=$pagesize;    
 $page=$_GET['page'];    
 if (($page!='') && (is_numeric($page))){    
$epage = $page;    
if ($epage<1)$epage=1;    
if ($epage>$result->pagecount)$epage = $result->pagecount;    
 }else{    
$epage=1;    
 }    
 if(!$result->eof)$result->Absolutepage=$epage;    
 $whileNum=$result->pagesize;    
  }    
  if(!isset($whileNum))$whileNum=$result->recordcount;    
  for($i=1;$i<=$whileNum;$i++){    
 if($result->eof)break;    
 for($n=0;$n<=($result->fields->count-1);$n++){    
$str[$i-1][$result[$n]->name] = $result[$n]->value;    
 }    
 $result->movenext();    
  }    
  if($autopage==true)$this->page = $this->Paging($filename,$result->pagecount,$epage);    
  $result->close();    
  return $str;    
   }    
?>

二、供调用的分页代码 :

<?php    
    static private function Paging($FilesName,$PageCount,$page){    
    $PageStr="";    
    $topname='第一页';    
    $bottomname='最末页';    
    $overname='上一页';    
    $upname='下一页';    
    $p=$FilesName.'page=';    
  if ($PageCount>1){    
 if ($page<=1){    
$page=1;    
$PageStr='当前第 '.$page.' / '.$PageCount.' 页 ['.$topname.'] ['.$overname.'] <a href="'.$p.($page+1).'">['.$upname.']</a> <a href="'.$p.($PageCount).'">['.$bottomname.']</a>';    
 }else if($page>=$PageCount){    
$page=$PageCount;    
$PageStr='当前第 '.$page.' / '. $PageCount . ' 页 <a href="'.$p.(1).'">['.$topname.']</a> <a href="'.$p.($page-1).'">['.$overname.']</a> ['.$upname.'] ['.$bottomname.']';    
 }else{    
$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>';    
 }    
  }else{    
 $PageCount=1;    
 $page=1;    
 $PageStr=('当前第 ' . $page) . ' / '. $PageCount . ' 页 ['.$topname.'] ['.$overname.'] ['.$upname.'] ['.$bottomname.']';    
  }    
  return $PageStr;    
   }    
?>

我觉得这样在读取数据库的时候基本上不用担心分页会出什么问题,而且如果你多个网站栏目的话,分页都可以调用,非常方便。

以上代码不足之处还请指出,谢谢!

更过PHP相关问题请访问PHP中文网:https://HdhCmsTest

以上就是两步快速实现PHP分页功能,方便实用的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于两步快速实现PHP分页功能,方便实用的详细内容...

  阅读:41次