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


Posted in PHP onOctober 09, 2006

<?php

/*********************************************
TOracleViewPagev 2.0
日期:2000-9-23

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

更新日期:2000-10-19
增加显示TopRecord的功能,允许第一页显示的记录数与其它页不同。

作者:sharetop
email:ycshowtop@21cn.com

***********************************************/
class TOracleViewPage {

var $Table; //表名
var $MaxLine; //每页显示行数

var $LinkId; //数据库连接号
var $Id; //排序参考字段

var $Offset; //记录偏移量
var $Total; //记录总数
var $Number; //本页读取的记录数
var $TopNumber;//读新记录时实际取出的记录数
var $Result; //读出的结果
var $TopResult;//读新记录时的结果

var $TheFirstPage;//特殊指定第一页的链接
var $StartRec; //指定第二页的起始记录号

var $TPages; //总页数
var $CPages; //当前页数

var $TGroup;
var $PGroup; //每页显示的页号个数
var $CGroup;

var $Condition; //显示条件 如:where id='$id' order by id desc
var $PageQuery; //分页显示要传递的参数
//-------------------------------------
// 以下构造函数、析构函数及初始化函数
//-------------------------------------

//构造函数
//参数:表名、最大行数、分页参考的字段、每页显示的页号数

function TOracleViewPage($TB,$ML,$id){
global $offset;

$this->Table=$TB;
$this->MaxLine=$ML;
$this->Id=$id;

$this->StartRec=0;
if(isset($offset)) $this->Offset=$offset;
else $this->Offset=0;

$this->Condition="";
$this->TheFirstPage=NULL;
$this->PageQury=NULL;
}

//初始化
//参数:用户名、密码、数据库
function InitDB($user,$password,$db){
if (PHP_OS == "WINNT") $dllid=dl("php3_oci80.dll");
$this->LinkId = OCILogon($user,$password,$db);
}

//断开
function Destroy(){
OCILogoff($this->LinkId);
}
//-------------------------
// Set 函数
//-------------------------

//设置显示条件
//如:where id='$id' order by id desc
//要求是字串,符合SQL语法(本字串将加在SQL语句后)

function SetCondition($s){
$this->Condition=$s;
}

//设置每组的显示个数
function SetNumGroup($pg){
$this->PGroup=$pg;
}
//设置首页,如无则为NULL
function SetFirstPage($fn){
$this->TheFirstPage=$fn;
}
//设置起始记录,如无则取默认0
function SetStartRecord($org){
$this->StartRec=$org;
}

//设置传递参数
// key参数名 value参数值
// 如:setpagequery("id",$id);如有多个参数要传递,可多次调用本函数。

function SetPageQuery($key,$value){
$tmp[key]=$key; $tmp[value]=$value;
$this->PageQuery[]=$tmp;
}
//--------------------------------
// Get 函数
//--------------------------------

//取记录总数
function GetTotalRec(){

$SQL="SELECT Count(*) AS total FROM ".$this->Table." ".$this->Condition;

$stmt = OCIParse($this->LinkId,$SQL);
$bool = OCIExecute($stmt);
if (!$bool) {
echo "连接失败!";
OCILogoff($this->LinkId);
exit;
}
else {
OCIFetch($stmt);
$this->Total=OCIResult($stmt,1);
}
OCIFreeStatement($stmt);
}

//取总页数、当前页
function GetPage(){
$this->TPages=ceil($this->Total/$this->MaxLine);
$this->CPages=ceil($this->Offset/$this->MaxLine)+1;
}

//取总组数、当前组
function GetGroup() {
$this->TGroup=ceil($this->TPages/$this->PGroup);
$this->CGroup=ceil($this->CPages/$this->PGroup);
}

PHP 相关文章推荐
PHP在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
php+mysql事务rollback&commit示例
Feb 08 PHP
php&mysql 日期操作小记
Feb 27 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 PHP
PHP命令行与定时任务
Apr 01 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
PHP的面向对象编程
Oct 09 #PHP
You might like
php通过字符串调用函数示例
2014/03/02 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
JS小框架 fly javascript framework
2009/11/26 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
中软国际Java程序员机试题
2012/08/19 面试题
幼儿园教师节活动方案
2014/02/02 职场文书
党建工作先进材料
2014/05/02 职场文书
经典演讲稿汇总
2014/05/19 职场文书
法语专业求职信
2014/07/20 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang