分页显示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安全编程之加密功能
Oct 09 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
微信支付开发发货通知实例
Jul 12 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 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
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
node.js制作一个简单的登录拦截器
2020/02/10 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
python框架django基础指南
2016/09/08 Python
python的unittest测试类代码实例
2017/12/07 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
使用Python处理BAM的方法
2018/09/28 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
pandas的排序和排名的具体使用
2019/07/31 Python
Python timeit模块的使用实践
2020/01/13 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
工程招投标邀请书
2014/01/26 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
导游词之日月潭
2019/11/05 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python