分页显示Oracle数据库记录的类之二


Posted in PHP onOctober 09, 2006

//--------------------------------
// 工作函数
//--------------------------------

//读取记录
//主要工作函数,根据所给的条件从表中读取相应的记录
//返回值是一个二维数组,Result[记录号][字段名]

function ReadList() {

$SQL="SELECT * FROM ".$this->Table." ".$this->Condition." ORDER BY ".$this->Id." DESC";

$stmt = OCIParse($this->LinkId,$SQL);
$bool = OCIExecute($stmt);
if (!$bool) {
echo "连接失败!";
OCILogoff($this->LinkId);
exit;
}
else {
$ncols = OCINumCols($stmt);
for ( $i = 1; $i <= $ncols; $i++ )
$column_name[$i] = OCIColumnName($stmt,$i);
$k=0;

for($j=0;$j<$this->StartRec+$this->Offset;$j++) OCIFetch($stmt);
for($j=0;$j<$this->MaxLine;$j++){
if(OCIFetch($stmt)){
$k++;
for($i=1;$i<=$ncols;$i++)
$temp[$column_name[$i]]=OCIResult($stmt,$i);
$this->Result[]=$temp;
}
else break;
}
$this->Number=$k;

}
OCIFreeStatement($stmt);
return $this->Result;
}
//读最新的记录
//topnum指定要读出的记录数

function ReadTopList($topnum){

$SQL="SELECT * FROM ".$this->Table." ".$this->Condition." ORDER BY ".$this->Id." DESC";

$stmt = OCIParse($this->LinkId,$SQL);
$bool = OCIExecute($stmt);
if (!$bool) {
echo "连接失败!";
OCILogoff($this->LinkId);
exit;
}
else {
$ncols = OCINumCols($stmt);
for ( $i = 1; $i <= $ncols; $i++ )
$column_name[$i] = OCIColumnName($stmt,$i);
$k=0;

for($j=0;$j<$topnum;$j++){
if(OCIFetch($stmt)){
$k++;
for($i=1;$i<=$ncols;$i++)
$temp[$column_name[$i]]=OCIResult($stmt,$i);
$this->TopResult[]=$temp;
}
else break;
}
$this->TopNumber=$k;

}
OCIFreeStatement($stmt);
return $this->TopResult;

}
//---------------------------
// 分页相关
//---------------------------

//显示当前页及总页数
//本函数在GetPage()后调用。
function ThePage() {
echo "第".$this->CPages."页/共".$this->TPages."页";
}

//显示翻页按钮
//此函数要在GetPage()函数之后调用
//显示下页、上页,并加上要传递的参数

function Page() {
$k=count($this->PageQuery);
$strQuery=""; //生成一个要传递参数字串
for($i=0;$i<$k;$i++){
$strQuery.="&".$this->PageQuery[$i][key]."=".$this->PageQuery[$i][value];
}

return $strQuery;
}

function PrePage($strQuery){
$prev=$this->Offset-$this->MaxLine;
if($prev>=0)
echo "<A href=$PHP_SELF?offset=".$prev.$strQuery." class=newslink>上一页</A>";
else if($this->TheFirstPage!=NULL)
echo "<A href=".$this->TheFirstPage." class=newslink>上一页</A>";
else echo "上一页";
}

function NexPage($strQuery){
$next=$this->Offset+$this->MaxLine;
$k=$this->Total-$this->StartRec;
if($next<$k)
echo "<A href=$PHP_SELF?offset=".$next.$strQuery." class=newslink>下一页</A>";
else
echo "下一页";
}
//------------------------------------
// 记录分组
//----------------------------------
//显示分组
function NumPage() {
$first=($this->CGroup-1)*($this->PGroup)+1;
$last=($first+$this->PGroup > $this->TPages)? ($this->TPages+1):($first+$this->PGroup);
$pr=($this->CGroup-2>=0)?( ($this->CGroup-2)*($this->PGroup)+1 ):(-1);
$prev=($pr!=-1)?( ($pr-1)*$this->MaxLine):(0);
$ne=($this->CGroup*$this->PGroup+1<=$this->TPages)?($this->CGroup*$this->PGroup+1):(-1);
$next=($ne!=-1)?( ($ne-1)*$this->MaxLine):(0);

$k=count($this->PageQuery);
$strQuery=""; //生成一个要传递参数字串
for($i=0;$i<$k;$i++){
$strQuery.="&".$this->PageQuery[$i][key]."=".$this->PageQuery[$i][value];
}

if($first!=1)
echo "<A href=$PHP_SELF?offset=".$prev.$strQuery." > << </a>";
for($i=$first;$i<$last;$i++) {
if($this->CPages!=$i){
$current=($i-1)*$this->MaxLine;
echo "<A href=$PHP_SELF?offset=".$current.$strQuery." >".$i."</a> ";
}
else echo "<font color=#e00729>".$i."</font> ";
}
if($ne!=-1)
echo "<A href=$PHP_SELF?offset=".$next.$strQuery." > >> </a>";
}

//******end class
}
?>

PHP 相关文章推荐
繁体中文转换为简体中文的PHP函数
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
基于Zookeeper的使用详解
May 02 PHP
基于php下载文件的详解
Jun 02 PHP
关于js和php对url编码的处理方法
Mar 04 PHP
php绘制一条直线的方法
Jan 24 PHP
Yii数据库缓存实例分析
Mar 29 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
分页显示Oracle数据库记录的类之一
Oct 09 #PHP
在线竞拍系统的PHP实现框架(一)
Oct 09 #PHP
用在PHP里的JS打印函数
Oct 09 #PHP
在PHP的图形函数中显示汉字
Oct 09 #PHP
PHP中在数据库中保存Checkbox数据(2)
Oct 09 #PHP
PHP中显示格式化的用户输入
Oct 09 #PHP
提升PHP执行速度全攻略(下)
Oct 09 #PHP
You might like
PHP 5.3.0 安装分析心得
2009/08/07 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
php进程间通讯实例分析
2016/07/11 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
python 七种邮件内容发送方法实例
2014/04/22 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python学生管理系统开发
2019/01/30 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
this关键字的含义
2015/04/08 面试题
小学趣味运动会加油稿
2014/09/25 职场文书
幼儿园见习报告
2014/10/30 职场文书
出差报告范文
2014/11/06 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书