分页显示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安装全攻略:APACHE
Oct 09 PHP
SSI指令
Nov 25 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
PHP批量修改文件名称的方法分析
Feb 27 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 中的str_replace 函数总结
2007/04/27 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
金融专业推荐信
2013/11/14 职场文书
大学毕业感言50字
2014/02/07 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2019各种承诺书范文
2019/06/24 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
SpringBoot详解执行过程
2022/07/15 Java/Android