分页显示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集成FCK的函数代码
Sep 27 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
PHP实现通过CURL上传文件功能示例
May 30 PHP
php文件包含的几种方式总结
Sep 19 PHP
PHP基于array_unique实现二维数组去重
Jul 14 PHP
php封装实现钉钉机器人报警接口的示例代码
Aug 08 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实例分享之html转为rtf格式
2014/06/02 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
设定php简写功能的方法
2019/11/28 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
JavaScript 撑出页面文字换行
2009/06/15 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
keras实现多种分类网络的方式
2020/06/11 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
Python实现粒子群算法的示例
2021/02/14 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
机械专业应届生求职信
2013/09/21 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
优秀班主任申报材料
2014/12/16 职场文书
通知函的格式
2015/04/27 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL