<?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; // 2 ページ目のリンク 開始レコード番号
var $TPages; //総ページ数
var $CPages; //現在のページ数
var $TGroup; >var $PGroup; // 各ページに表示されるページ番号の数
var $Condition; // 次のような条件を表示します。 desc
var $PageQuery; / /ページングは渡されるパラメータを表示します
//---------------------------- --------
//以下のコンストラクター、デストラクター、初期化関数
//---------------------- ---------- ------
//コンストラクター
//パラメータ: テーブル名、最大行数、ページング参照フィールド、各ページに表示されるページ番号
function TOracleViewPage ($TB,$ML,$id){
global $offset;
$this->Table=$TB; MaxLine=$ML;
$this->Id=$id;
$this->StartRec=0; =$offset;
else $this->Offset=0;
$this->Condition="";
$this->$this ->PageQury=NULL;
}
//初期化
//パラメータ: ユーザー名、パスワード、データベース
関数 InitDB($user,$password,$db){
if (PHP_OS == " WINNT") $dllid=dl("php3_oci80.dll");
$this->LinkId = OCILogon($user,$password,$db); >
//ブレークオープン
function Destroy(){
OCILogoff($this->LinkId)
}
//----------- ------ ------
// 関数を設定
//-----------------------
/ /表示条件を設定します
//例: where id='$id' order by id desc
//要件は SQL 構文に準拠した文字列です (この文字列は追加されます) SQL文の後)
function SetCondition($s){
$this->Condition=$s;
}
//各グループの表示番号を設定
function SetNumGroup($pg) {
$this->gt;PGroup=$pg;
}
//ホームページを設定するか、ない場合は NULL
function SetFirstPage($fn) {
$this->TheFirstPage =$fn;
}
// 開始レコードを設定しない場合は、デフォルトの 0 を使用します
function SetStartRecord($org){
$ this->StartRec=$org;
}
// 転送パラメータを設定します
// キー パラメータ名 値 パラメータ値
// 例: setpagequery("id",$ id); 渡されるパラメータが複数ある場合は、この関数の呼び出し回数を追加できます。
function SetPageQuery($key,$value){
$tmp[key]=$key; $tmp[value]=$value;
$this->PageQuery[]=$ tmp;
}
//----------------------------
// 関数を取得
//----------------------------
//レコードの合計数を取得する
function GetTotalRec (){
$SQL="SELECT Count(*) AS total FROM ".$this->Table." ".$this->Condition;
$ stmt = OCIParse ($this->LinkId,$SQL);
$bool = OCIExecute($stmt);
if (!$bool) {
echo "接続に失敗しました!"; this->LinkId);
exit;
}
else {
OCIFetch($stmt); Total=OCIResult($stmt,1) ; >}
OCIFreeStatement($stmt);
}
//総ページ数と現在のページを取得します
function GetPage(){
$this->TPages =ceil($this->Total/$this->MaxLine);
$this->CPages=ceil($this->Offset/$this->MaxLine)
}
//グループの総数、現在のグループを取得します
function GetGroup() {
$this->TGroup=ceil($this->TPages/$this->PGroup );
$this->CGroup=ceil($this->CPages/$this->PGroup);