分页显示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.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
php下检测字符串是否是utf8编码的代码
Jun 28 PHP
php共享内存段示例分享
Jan 20 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 PHP
PHP基本语法
Mar 31 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 程式大小
2006/12/06 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
浅谈php扩展imagick
2014/06/02 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
房屋出售协议书
2014/04/10 职场文书
企业总经理任命书
2014/06/05 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis
Rust中的Struct使用示例详解
2022/08/14 Javascript