ホームページ > php教程 > php手册 > Oracle データベース レコードをページネーションで表示するためのクラス 2

Oracle データベース レコードをページネーションで表示するためのクラス 2

WBOY
リリース: 2016-06-21 09:08:54
オリジナル
969 人が閲覧しました

oracle|ページネーション|データ|データベース|表示

//--------------------------------
// 仕事関数
//-------- ------------------------

//レコードの読み取り
//メインの作業関数は、指定された条件に従ってテーブルから対応するレコードを読み取ります。条件 Record
//戻り値は2次元配列 Result[レコード番号][フィールド名]

function ReadList() {

$SQL="SELECT * FROM ".$this->Table." ".$ this->Condition." ORDER BY ".$this->Id.";

$stmt = OCIParse($this->LinkId,$SQL);
$bool = OCIExecute($ stmt);
if (!$bool) {
echo "接続に失敗しました!";
OCILogoff($this->exit)
else {
$ncols($stmt); ( $i = 1; $i $column_name[$i] = OCIColumnName($stmt,$i);

for($j=0;$j) StartRec+$this->Offset;$j++) OCIFetch($stmt);
for($j=0;$jMaxLine;$j++){
if(OCIFetch( $stmt) ){
$k++;
for($i=1;$i<=$ncols;$i++)
$temp[$column_name[$i]]=OCIResult($stmt,$i); this->Result[]=$temp;
elsebreak;
$this->Number=$k;
OCIFreeStatement($stmt); }
/ /最新のレコードを読み取ります
//topnumは読み取るレコードの数を指定します

function ReadTopList($topnum){

$SQL="SELECT * FROM ".$this->Table." "。 $this->Condition." ORDER BY ".$this->Id." DESC"

$stmt = OCIParse($this->LinkId,$SQL);
$bool = OCIExecute($stmt); ;
if ( !$bool) {
echo "接続に失敗しました! ";
OCILogoff($this->LinkId);
exit;
}
else {
$ncols = OCINumCols($stmt);
for ( $i = 1; $i $column_name[$i] = OCIColumnName($stmt,$i);
$k=0;

for($j=0;$j<$topnum;$j++){
if(OCIFetch($stmt)) {
$k++;
for($i=1;$i$temp[$column_name[$i]]=OCIResult($stmt,$i); TopResult[]=$temp;
elsebreak;
$this->TopNumber=$k;
OCIFreeStatement($stmt);


; //---------------
// ページネーション関連
//------------- - ---------------

//現在のページと総ページ数を表示します
//この関数は GetPage() の後に呼び出されます
function ThePage() {
echo "th" .$.this->CPages."Pages/Total".$this->TPages."Pages"
}

//ページボタンを表示します
//この関数は GetPage() 関数の後に呼び出す必要があります
//次のページ、前のページを表示し、渡すパラメータを追加します

function Page() {
$k=count($this->PageQuery) //パラメータを生成します。渡される文字列
for($i=0;$i<$k;$i++){
$strQuery.="&".$this->PageQuery[$i][key]."=".$ this-> PageQuery[$i][value];
}

return $strQuery;

function PrePage($strQuery){
$prev=$this->Offset-$this->MaxLine;
if($ prev>=0)
echo "<A href=$PHP_SELF?offset=".$prev.$strQuery." class=newslink>前のページ</A>
else if($this-> ;TheFirstPage! =NULL)
echo "";
else echo "前のページ"; $ strQuery){
$next=$this->Offset+$this->MaxLine
$k=$this->Total-$this->StartRec;
if($next<$k)
echo; "
";
else
echo "次のページ"
//---- - -----------------------------
//レコードのグループ化
//---------- - -------------------------
//グループ化を表示
function NumPage() {
$first=($this->CGroup-1) * ($this->PGroup)+1;
$last=($first+$this->PGroup > $this->TPages):($first+$ this ->PGroup);
$pr=($this->CGroup-2>=0)?( ($this->CGroup-2)*($this->PGroup)+1 ):( - 1);
$prev=($pr!=-1)?( ($pr-1)*$this->MaxLine):(0);
$ne=($this->CGroup*$ this ->PGroup+1TPages)?($this->CGroup*$this->PGroup+1):(-1);
$next=($ne!=- 1 )?( ($ne-1)*$this->MaxLine):(0);

$k=count($this->PageQuery); // to を生成します。パラメータ文字列
for($i=0;$i<$k;$i++){
$strQuery.="&".$this->PageQuery[$i][key]."=".$ this ->PageQuery[$i][value];
}

if($first!=1)
echo "
";
for($i=$first;$i<$last;$i++) {
if($this->CPages!=$i){
$current=($i-1)*$this->MaxLine;
echo "<A href=$PHP_SELF?offset=".$current.$strQuery." >".$i."</a> ";
}
else echo "".$i." ";
}
if($ne!=-1)
echo "<A href=$PHP_SELF?offset=".$next.$strQuery." > >> </a>";
}

//******授業終了
}
?>



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート