分页显示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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
解决GD中文乱码问题
Feb 14 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
php 文本文件的读取效率
Feb 10 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
html静态页面调用php文件的方法
Nov 13 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
php常用的工具开发整理
Sep 26 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
js控制table合并具体实现
2014/02/20 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
浅析Python中的多重继承
2015/04/28 Python
详解Python函数作用域的LEGB顺序
2016/05/14 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
Python 音频生成器的实现示例
2019/12/24 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
教师的实习自我鉴定
2013/12/17 职场文书
主题酒店策划书
2014/01/28 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
小学班级特色活动方案
2014/08/31 职场文书
鼋头渚导游词
2015/02/05 职场文书
2015年采购员工作总结
2015/04/27 职场文书
公司庆典主持词
2015/07/04 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
pt-archiver 主键自增
2022/04/26 MySQL