• php+pdo实现分页类代码


    <?php
    class SepPage{
    var $db; //pdo实例
    var $sqlStr; //数据库查询语句
    var $nowPg; //当前页
    var $pageSize; //每页显示的记录数

    function ShowPage($db, $sqlStr, $pageSize, $nowPg){
    $this->db = $db;
    $this->sqlStr = $sqlStr;
    $this->pageSize = $pageSize;
    if (!isset($nowPg) || ($nowPg == '') || ($nowPg == 0)){
    $nowPg = 1;
    }
    $this->nowPg = $nowPg;
    $start = $pageSize * ($nowPg - 1);
    $sqlStr .= " limit ".$start." , ".$pageSize;
    $rst = $db->query($sqlStr);
    if ($db->errorCode() != '00000'){
    print_r($db->errorInfo());
    exit();
    }
    $rstArr = $rst->fetchAll();
    return $rstArr;
    }

    function PageNav($name, $unit, $class){
    $rst = $this->db->query($this->sqlStr);
    if ($this->db->errorCode() != '00000'){
    print_r($this->db->errorInfo());
    exit();
    }
    $rstArr = $rst->fetchAll();
    $recordCount = count($rstArr); //总的记录数
    $lastPg = ceil($recordCount/$this->pageSize); //尾页,即总的页数
    $lastPg = $lastPg ? $lastPg : 1; //没有显示条目,置最后页为1
    $prePg = $this->nowPg - 1;
    $nextPg = (($this->nowPg == $lastPg) ? 0 : ($this->nowPg + 1));

    if ($lastPg <= 1){
    return false;
    }

    $str = "共有".$name."&nbsp;".$recordCount."&nbsp;".$unit.",每页显示&nbsp;".$this->pageSize."&nbsp;".$unit;
    $str .= ",第<select name='toPg' onchange='window.location=\"?page=\"+this.value'>\n";
    for ($i=1; $i<=$lastPg; $i++){
    if ($i == $this->nowPg){
    $str .= "<option value='$i' selected>$i</option>\n";
    }else{
    $str .= "<option value='$i'>$i</option>\n";
    }
    }
    $str .= "</select>页/共&nbsp;".$lastPg."&nbsp;页";

    $str .= "&nbsp;&nbsp;&nbsp;&nbsp;";

    if ($prePg){
    $str .= "<a href=".$_SERVER['PHP_SELF']."?page=1"." class=".$class.">首页</a>";
    $str .= "&nbsp;";
    $str .= "<a href=".$_SERVER['PHP_SELF']."?page=".$prePg." class=".$class.">上一页</a>";
    $str .= "&nbsp;";
    }else{
    $str .= "首页";
    $str .= "&nbsp;";
    $str .= "上一页";
    $str .= "&nbsp;";
    }

    if ($nextPg){
    $str .= "<a href=".$_SERVER['PHP_SELF']."?page=".$nextPg." class=".$class.">下一页</a>";
    $str .= "&nbsp;";
    $str .= "<a href=".$_SERVER['PHP_SELF']."?page=".$lastPg." class=".$class.">尾页</a>";
    $str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
    }else{
    $str .= "下一页";
    $str .= "&nbsp;";
    $str .= "尾页";
    $str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
    }
    return $str;
    }
    }
    ?>

    PDO:

    $dsn = 'mysql:host=localhost;dbname=db_wym';
    $user = 'root';
    $pwd = 'root';
    try{
    $db = new PDO($dsn, $user, $pwd, array(PDO::ATTR_PERSISTENT => true));
    $db->exec('set names utf8');
    }catch (PDOException $e){
    echo "Error message:".$e->getMessage();
    die();
    }

  • 相关阅读:
    如何判断哪个方法调用了相同的事件?
    Windows Update问题
    Android学习笔记
    关于官方Reachability Demo理解
    poj 1797 Heavy Transportation
    poj 3013 Big Christmas Tree
    poj 1062 昂贵的聘礼
    poj 3615 Cow Hurdles(floyd)
    CF Planets(STL+ 最短路)
    poj 3026 Borg Maze
  • 原文地址:https://www.cnblogs.com/hasayaki/p/2888446.html
Copyright © 2020-2023  润新知