分页显示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中处理模拟rewrite 效果
Dec 09 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
php微信开发之图片回复功能
Jun 14 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 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中替换键名的简易方法示例详解
2014/01/07 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python中的lstrip()方法使用简介
2015/05/19 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python实现redis三种cas事务操作
2017/12/19 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python学生管理系统学习笔记
2019/03/19 Python
python集合是否可变总结
2019/06/20 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
宿舍违规用电检讨书
2014/02/16 职场文书
承诺书样本
2014/08/30 职场文书
小学生运动会报道稿
2014/09/12 职场文书
2015年人事科工作总结
2015/04/28 职场文书
生日赠语
2015/06/23 职场文书
汽车销售合同文本
2019/08/08 职场文书
分享python函数常见关键字
2022/04/26 Python