PHP PDO分页类

PHP PDO分页类——封装PDO分页操作,通过PDO可以统一不同数据库的操作方法,下面将对PDO操作数据库的方法进行封装,实现对数据库中数据的分页查询,并输出分页的超级链接。

PHP PDO分页类 语法

class SepPage{
    var $rs;
    var $pagesize;
    var $nowpage;
    var $array; var $conn;
    var $sqlstr;
    /*
    * @ 方法说明:
    *  数据分页处理,并以数组形式返回分页信息
    *
    * @ 参数说明:
    *  $sqlstr:所要执行的SQL语句
    *  $conn:数据库连接ID
    *  $pagesize:每页显示数据的条数
    *  $nowpage:当前显示的页数
       */
    function ShowData($sqlstr,$conn,$pagesize,$nowpage){   //定义方法
       if(!isset($nowpage) || $nowpage=="")                //判断变量值是否为空
            $this->nowpage=1;                              //定义每页起始页
       else
            $this->nowpage=$nowpage;
       $this->pagesize=$pagesize;                         //定义每页输出的记录数
       $this->conn=$conn;                                 //连接数据库返回的标识
       $this->sqlstr=$sqlstr;                             //执行的查询语句
       $offset=($this->nowpage-1)*$this->pagesize;
       $sql=$this->sqlstr." limit $offset, $this->pagesize";
       $result=$this->conn->prepare($sql);                //准备查询语句
       $result->execute();                                //执行查询语句,并返回结果集
       $this->array=$result->fetchAll(PDO::FETCH_ASSOC);  //获取结果集中的所有数据
       if(count($this->array)==0 || $this->array==false)
            return false;
       else
            return $this->array;
    }
    /*
    * @ 方法说明:
    * 创建数据分页输出的超级链接
    *
    * @ 参数说明:
    *   $contentname:超级链接总称
    *   $utits:超级链接中数据的单位
    *   $anothersearchstr:超级链接传递的第一个参数
    *   $anothersearchstrs:超级链接传递的第二个参数
    *   $class:超级链接传递的样式
        */
    function ShowPage($contentname,$utits,$anothersearchstr,$anothersearchstrs,$class){
        $str="";
        $res=$this->conn->prepare($this->sqlstr);       //准备查询语句
        $res->execute();                                //执行查询语句,并返回结果集
        $this->array=$res->fetchAll(PDO::FETCH_ASSOC);  //获取结果集中的所有数据
        $record=count($this->array);                    //统计记录总数
        $pagecount=ceil($record/$this->pagesize);       //计算共有几页
        $str.=$contentname." ".$record." ".$utits." 每页 
        ".$this->pagesize." ".$utits." 第 ".$this->nowpage." 
页/共 ".$pagecount." 页";
        $str.="    ";
        if($this->nowpage!=1)
            $str.="<a href=".$_SERVER['PHP_SELF']."?page=1&page_type=".
            $anothersearchstr."&parameter2=".$anothersearchstrs." class=".$class.
            ">首页</a>";
        else
            $str.="<font color='#555555'>首页</font>";
        $str.=" ";
        if($this->nowpage!=1)
            $str.="<a href=".$_SERVER['PHP_SELF']."?page=".($this-> nowpage-1).
            "&page_type=".$anothersearchstr."&parameter2=".$anothersearchstrs."
            class=".$class.">上一页</a>";
        else
            $str.="<font color='#555555'>上一页</font>";
        $str.=" ";
        if($this->nowpage!=$pagecount)
            $str.="<a href=".$_SERVER['PHP_SELF']."?page=" .($this->nowpage+1)
            ."&page_type=".$anothersearchstr."&parameter2=".$anothersearchstrs."
            class=".$class.">下一页</a>";
        else
            $str.="<font color='#555555'>下一页</font>";
        $str.=" ";
        if($this->nowpage!=$pagecount)
            $str.="<a href=".$_SERVER['PHP_SELF']."?page=".$pagecount."&page_type=
            ".$anothersearchstr."&parameter2=".$anothersearchstrs." class=".$class.
         ">尾页</a>";
        else
            $str.="<font color='#555555'>尾页</font>";
        if(count($this->array)==0 || $this->array==false)
            return "无数据!";
        else
            return $str;
    }
}



PHP PDO分页类 示例

应用PDO分页类

对db_database02数据库的tb_commo数据表中的数据进行分页输出。载入类的实例化文件,通过分页类AdminDB的$admindb对象调用ShowData ()方法,完成数据表中数据的分页查询操作,调用ShowPage()方法输出分页超级链接。

其关键代码如下:

$connobj=new ConnDB("mysql","localhost","root","111","db_database02");
                                                      //数据库连接类实例化
$conn=$connobj->GetConnId();                          //执行连接操作,返回连接标识
$admindb=new AdminDB();                               //数据库操作类实例化
$seppage=new SepPage();                               //分页类实例化
if(isset($_GET['page'])){                             //判断分页变量是否存在
   $page=$_GET['page'];
}else{
   $page=1;
}
$res = $seppage->ShowData("select * from tb_commo ",$conn,2,$page);    //执行查询语句
for($i=0;$i<count($res);$i++){                                         //循环输出查询结果
   <table width="636" height="134" border="0" cellspacing="0" cellpadding="0">
       <tr>
        <td width="145" rowspan="5" align="center" valign="middle"><img src="<?php
        echo $res[$i]['pics'];?>" width="90" height="100" alt="<?php echo
        $res[$i]['name'];?>" style="border: 1px solid #f0f0f0;" /></td>
        <td height="35">商品名称:<?php echo $res[$i]['name'];?></td>
        <td width="156" height="35">商品类别:<?php echo $res[$i]['class'];?></td>
        <td width="157">商品型号:<?php echo $res[$i]['model'];?></td>
       </tr>
        <tr>
           <td height="25"><?php echo $seppage->ShowPage("产品","个",$_GET['page_type'],
           '',"a");?></td>
        </tr>
   </table>
<?php
}
?>
赞(0)
未经允许不得转载:极客笔记 » PHP PDO分页类
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址