分页显示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 相关文章推荐
操作Oracle的php类
Oct 09 PHP
php adodb介绍
Mar 19 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
PHP基本语法实例总结
Sep 09 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 PHP
详解json在php中的应用
Sep 30 PHP
PHP PDOStatement::getColumnMeta讲解
Feb 01 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
May 29 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
python实现爬虫下载美女图片
2015/07/14 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
详解python:time模块用法
2019/03/25 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
python实现飞机大战项目
2020/03/11 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
《在大海中永生》教学反思
2014/02/24 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
大学生学期个人总结
2015/02/12 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
毕业生政审意见范文
2015/06/04 职场文书
小学美术教学反思
2016/02/17 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Python 视频画质增强
2022/04/28 Python
Mysql数据库group by原理详解
2022/07/07 MySQL
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers