php分頁代碼
来源:互联网 发布:政府 汽车数据 编辑:程序博客网 时间:2024/05/17 22:54
<?php
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 <= 0) $this->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 "<A href=/"$link/">$msg</A>/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 < $this->iPages) {
echo " | ";
echo $this->LinktoPage($this->CPages + 1, "下一页");
echo " | ";
echo $this->LinktoPage($this->iPages, "首页");
} else {
echo " | 下一页 | 尾页";
}
}
/*
* 显示跳转页选择框
* */
function SelectItem()
{
echo "跳到第<SELECT name='topage' size='1' onchange='window.location=this.value'>/n";
for($i = 1;$i <= $this->iPages;$i++) {
if ($this->CPages == $i)
$extra = "selected";
else
$extra = "";
echo "<OPTION VALUE='" . $this->PageUrl($i) . "' $extra>$i</OPTION>";
}
echo "</SELECT>/n";
}
/*
* 一次性显示所有按钮组件
* */
function myPageItem()
{
$this->PageButton();
$this->SelectItem();
$this->PageNav();
}
} // 类结束
?>
----------------------------------------
調用頁面:
<?php
require_once("cc.php");
$conn=mysql_connect("localhost","root","a") or die("Could not connect:".mysql_error());
mysql_select_db("test",$conn);
$sql = "select * from sample1 limit 0,20";
$hdc = new PageItem($sql);
echo $hdc->myPageItem();
$arrRecords = $hdc->ReadList();
echo "<br>".count($arrRecords);
echo "<hr>";
for($i=0;$i<count($arrRecords);$i++)
{
$arrRecord=$arrRecords[$i];
for($j=0;$j<count($arrRecord);$j++)
{
echo $arrRecord[$j]." ";
}
echo "<br>";
}
?>
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 <= 0) $this->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 "<A href=/"$link/">$msg</A>/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 < $this->iPages) {
echo " | ";
echo $this->LinktoPage($this->CPages + 1, "下一页");
echo " | ";
echo $this->LinktoPage($this->iPages, "首页");
} else {
echo " | 下一页 | 尾页";
}
}
/*
* 显示跳转页选择框
* */
function SelectItem()
{
echo "跳到第<SELECT name='topage' size='1' onchange='window.location=this.value'>/n";
for($i = 1;$i <= $this->iPages;$i++) {
if ($this->CPages == $i)
$extra = "selected";
else
$extra = "";
echo "<OPTION VALUE='" . $this->PageUrl($i) . "' $extra>$i</OPTION>";
}
echo "</SELECT>/n";
}
/*
* 一次性显示所有按钮组件
* */
function myPageItem()
{
$this->PageButton();
$this->SelectItem();
$this->PageNav();
}
} // 类结束
?>
----------------------------------------
調用頁面:
<?php
require_once("cc.php");
$conn=mysql_connect("localhost","root","a") or die("Could not connect:".mysql_error());
mysql_select_db("test",$conn);
$sql = "select * from sample1 limit 0,20";
$hdc = new PageItem($sql);
echo $hdc->myPageItem();
$arrRecords = $hdc->ReadList();
echo "<br>".count($arrRecords);
echo "<hr>";
for($i=0;$i<count($arrRecords);$i++)
{
$arrRecord=$arrRecords[$i];
for($j=0;$j<count($arrRecord);$j++)
{
echo $arrRecord[$j]." ";
}
echo "<br>";
}
?>
- php分頁代碼
- PHP
- PHP
- php
- php
- PHP
- PHP
- php
- php
- php
- PHP
- php
- php
- php
- PHP
- PHP
- php
- php
- C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
- ASCII表
- 关于脚本潜在危险的解决办法
- 在symbian中如何使用MP3DecodeDLL播放MP3
- 请问下载那种软件可以使模糊的照片变清晰?谢谢~_百度知道
- php分頁代碼
- ASP.NET操作EXCEL时出现的错误 Retrieving the COM class factory for component with CLSID(转)
- [电脑教程]大师级GIF图片制作完整教学帖。 - 软件爱好者之家 - VeryCD社区
- ASP.NET的缓存
- 系统管理:充分利用Linux的安全防护工具
- 培训第一阶段:linux操作系统 lvm相关资料
- ASP.NET设计应用程序的七大绝招
- VC++6.0 Unicode 模式下 ReadString()问题
- ArcSDE服务入门