分页显示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
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
php修改时间格式的代码
May 29 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
php多任务程序实例解析
Jul 19 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
May 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
微信access_token的获取开发示例
2015/04/16 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
phpwind放自动注册方法
2006/12/02 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python中正则的使用指南
2016/12/04 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python 递归相关知识总结
2021/03/03 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2014年项目工作总结
2014/11/24 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
海洋天堂观后感
2015/06/05 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏