<?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); }
|