分页显示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数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
PHP7匿名类用法分析
Sep 26 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
PHP实现验证码校验功能
Nov 16 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
laravel-admin 中列表筛选方法
Oct 03 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
php获取汉字首字母的函数
2013/11/07 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
python生成ppt的方法
2018/06/07 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
django中cookiecutter的使用教程
2020/12/03 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
中职应届生会计求职信
2013/10/23 职场文书
英文版餐饮运营管理求职信
2013/11/06 职场文书
公司部门司机岗位职责
2014/01/03 职场文书
商家认证委托书格式
2014/10/16 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python