分页显示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 程序员也要学会使用“异常”
Jun 16 PHP
PHP 翻页 实例代码
Aug 07 PHP
PHP类与对象中的private访问控制的疑问
Nov 01 PHP
PHP读取xml方法介绍
Jan 12 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
PHP单例模式详细介绍
Jul 01 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
php随机生成验证码,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
第三节--定义一个类
2006/11/16 PHP
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
python3实现逐字输出的方法
2019/01/23 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
python装饰器原理与用法深入详解
2019/12/19 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
客户代表自我评价范例
2013/09/24 职场文书
高级销售员求职信
2013/10/25 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
119消防日活动总结
2014/08/29 职场文书
小学假期安全广播稿
2014/09/28 职场文书
优秀大学生自荐信
2015/03/26 职场文书