分页显示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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
BBS(php & mysql)完整版(五)
Oct 09 PHP
php笔记之常用文件操作
Oct 12 PHP
php 缩略图实现函数代码
Jun 23 PHP
PHP在线生成二维码代码(google api)
Jun 03 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
PHP7 错误处理机制修改
Mar 09 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 连接mysql连接被重置的解决方法
2011/02/15 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
python实现连续图文识别
2018/12/18 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
python集合常见运算案例解析
2019/10/17 Python
快速查找Python安装路径方法
2020/02/06 Python
Python configparser模块应用过程解析
2020/08/14 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
python之随机数函数的实现示例
2020/12/30 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
Overload和Override的区别
2012/09/02 面试题
服装采购员岗位职责
2014/03/15 职场文书
期末个人总结范文
2015/02/13 职场文书
新闻通讯稿范文
2015/07/22 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle