分页显示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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
PHP Cookie学习笔记
Aug 23 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
自制PHP框架之设计模式
May 07 PHP
php DES加密算法实例分析
Sep 18 PHP
php查看一个变量的占用内存的实例代码
Mar 29 PHP
PHP的imageTtfText()函数深入详解
Mar 03 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 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操作mysql数据库的基本类代码
2014/02/25 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
iview实现图片上传功能
2020/06/29 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python调用matlab的m自定义函数方法
2019/02/18 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python 忽略文件名编码的方法
2020/08/01 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
小学生获奖感言范文
2014/02/02 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
民生工程实施方案
2014/03/22 职场文书
统招统分证明
2015/06/23 职场文书
2016年元旦主持词
2015/07/06 职场文书
教师读书活动心得体会
2016/01/14 职场文书
python基础入门之字典和集合
2021/06/13 Python
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技