精美而实用的网站,关注web编程技术、网站运营、SEO推广,让您轻松愉快的学习

分页是我们项目开发过程中最常用的一个功能,把数据库读取做一个专用类,里面包括有对数据库的操作,包括分页等,这样用起来方便。

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

<?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;
    }
?>

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

Tags:PHP 函数 分页