分页显示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 相关文章推荐
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
用PHP实现 上一篇、下一篇的代码
Sep 29 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
php使用json_encode对变量json编码
Apr 07 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
php文件上传原理与实现方法详解
Dec 20 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中如何实现Hook机制
2017/11/14 PHP
jQuery表格插件datatables用法总结
2014/09/05 Javascript
angular.element方法汇总
2015/01/07 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
python操作redis的方法
2015/07/07 Python
在Python的Django框架中编写编译函数
2015/07/20 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
中学生自我鉴定
2014/02/04 职场文书
汉语言文学职业规划
2014/02/14 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
家长会主持词
2014/03/26 职场文书
化学专业自荐信
2014/05/28 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
贫困证明怎么写
2015/06/16 职场文书
新学期开学标语2015
2015/07/16 职场文书
工作会议简报
2015/07/20 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
实现一个简单得数据响应系统
2021/11/11 Javascript