文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php又一个分页显示类

php又一个分页显示类

时间:2008-05-29  来源:剑心通明

以下为引用的内容:
myPageItem();
* $arrRecords = $hdc->ReadList();
* */
if (!defined("__PAGEITEM__")) {
    define("__PAGEITEM__", 1);
} else {
    exit(3);
}
class PageItem {
    var $iDefaultRecords = 10; // 默认每页显示记录数,如果没有设置,就使用默认值
    var $iMaxRecord; //每页记录数
    var $iTotal; //记录总数
    var $sqlRecord; // 获取记录的SQL查询
    var $iPages; //总页数
    var $CPages; //当前页数
    /*
  * 构造函数 -- 初始化变量
  * 参数:SQL查询语句,将忽略LIMIT语句
  * */
    function PageItem($sql = "")
    {
        // register_shutdown_function($this->_PageItem());
        $this->SetMaxRecord($this->iDefaultRecords);
        /*
       * 解析SQL语句
       * */
        if ($sql  "") {
            list($sql) = spliti("LIMIT", $sql); // 去除LIMIT语句
            $this->sqlRecord = trim($sql);
            list(, $sql) = spliti("FROM", $sql);
            $sql = trim($sql);
   if(preg_match ("/\bGROUP\b \bBY\b/i", $sql))
   {
    //echo "HAVE GROUP BY";
    if(preg_match ("/\bHAVING\b/i", $sql)) list(,$field) = spliti("HAVING",$sql);
    list($field) = spliti(' ',trim($field));
    //echo $field;
    $this->iTotal = $this->CountRecord("SELECT $field,COUNT(DISTINCT $field) AS cnt FROM " . $sql,2);
   }
   else $this->iTotal = $this->CountRecord("SELECT COUNT(*) AS cnt FROM " . $sql,1);
        }
        $this->iPages = ceil($this->iTotal / $this->iMaxRecord);
        $this->CPages = $_REQUEST['page'];
        if ($this->CPages CPages = 1;
        if ($this->CPages > $this->iPages) $this->CPages = $this->iPages;
        //echo "SELECT COUNT(*) AS cnt FROM " . $sql;
  //echo $this->iTotal;
    }
    /*
     * 析构函数 -- 暂时不可用
     * */
    function _PageItem()
    {
        // $this->linkid = NULL;
    }
    function SetMaxRecord($cnt)
    {
        $this->iMaxRecord = $cnt;
    }
    /*
     * 统计匹配的记录总数
     * */
    function CountRecord($sql,$type)
    {
  //echo $sql;
  if($type == 1)
  {
   if (($records = mysql_query($sql)) && ($record = mysql_fetch_assoc($records))) {
    return $record['cnt'];
   } else return 0;
  }
  elseif($type == 2)
  {
   if($records = mysql_query($sql))
    return mysql_affected_rows();
  }
    }
/*
  * 读取记录
  * */
function ReadList()
{
  $ret = array();
  $this->sqlRecord.=" LIMIT ".($this->CPages-1)*$this->iMaxRecord.",".$this->iMaxRecord;
  $records = mysql_query($this->sqlRecord);
  if(!$records) return;
  while($record = mysql_fetch_array($records))
  {
   $ret[] = $record;
  }
  return $ret;
}
    function LinktoPage($page, $msg)
    {
        $link = $this->PageUrl($page);
        return "$msg\n";
    }
    function PageUrl($page)
    {
        $phpself = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
        $querystring = $_SERVER['QUERY_STRING'];
        $querystring = preg_replace("/page=[0-9]*&?/i", "", $querystring);
        $link = $phpself . "?page=$page&" . $querystring;
        return $link;
    }
    /*
  * 显示当前页及总页数   
  * */
    function PageNav()
    {
        echo "第" . $this->CPages . "页/共" . $this->iPages . "页";
    }
    /*
   * 显示翻页按钮,包括首页、下页、上页、未页
   * */
    function PageButton()
    {
        if ($this->CPages > 1) {
            echo $this->LinktoPage(1, "首页");
            echo " | ";
            echo $this->LinktoPage($this->CPages-1, "上一页");
        } else {
            echo "首页 | 上一页";
        }
        if ($this->CPages iPages) {
            echo " | ";
            echo $this->LinktoPage($this->CPages + 1, "下一页");
            echo " | ";
            echo $this->LinktoPage($this->iPages, "首页");
        } else {
            echo " | 下一页 | 尾页";
        }
    }
    /*
   * 显示跳转页选择框
   * */
    function SelectItem()
    {
        echo "跳到第\n";
        for($i = 1;$i iPages;$i++) {
            if ($this->CPages == $i)
                $extra = "selected";
            else
                $extra = "";
            echo "PageUrl($i) . "' $extra>$i";
        }
        echo "\n";
    }
    /*
     * 一次性显示所有按钮组件
     * */
    function myPageItem()
    {
        $this->PageButton();
        $this->SelectItem();
        $this->PageNav();
    }
} // 类结束
?>


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载