分页显示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函数
Oct 09 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
php导入导出excel实例
Oct 25 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
PHP curl使用实例
Jul 02 PHP
php实现倒计时效果
Dec 19 PHP
php生成带logo二维码方法小结
Apr 08 PHP
PHP中set_include_path()函数相关用法分析
Jul 18 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
php实现遍历文件夹的方法汇总
Mar 02 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 $_SERVER当前完整url的写法
2009/11/12 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python lxml模块安装教程
2015/06/02 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
外语系毕业生找工作的求职信
2013/11/28 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android