分页显示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 和 XML: 使用expat函数(三)
Oct 09 PHP
PHP调用Twitter的RSS的实现代码
Mar 10 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
PHP遍历数组的几种方法
Mar 22 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
TP5框架实现签到功能的方法分析
Apr 05 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正则获取页面所有图片地址
2016/03/23 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
跟老齐学Python之Python安装
2014/09/12 Python
python数据处理实战(必看篇)
2017/06/11 Python
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
python 安装impala包步骤
2020/03/28 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
工商行政管理专业求职书
2014/05/23 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
2014年收银工作总结
2014/11/13 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
教师旷工检讨书
2015/08/15 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
JavaScript实现栈结构详细过程
2021/12/06 Javascript
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技