分页显示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新建文件自动编号的思路与实现
Jun 27 PHP
解析argc argv在php中的应用
Jun 24 PHP
php上传图片到指定位置路径保存到数据库的具体实现
Dec 30 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
php实现简单的MVC框架实例
Sep 23 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 PHP
php优化查询foreach代码实例讲解
Mar 24 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
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
浅析return false的正确使用
2013/11/04 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Python实现提取文章摘要的方法
2015/04/21 Python
一些Python中的二维数组的操作方法
2015/05/02 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
Python代码需要缩进吗
2020/07/01 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
《长征》教学反思
2014/04/27 职场文书
拓展训练激励口号
2014/06/17 职场文书
SQL中的连接查询详解
2022/06/21 SQL Server