ホームページ >バックエンド開発 >PHPチュートリアル >Pages_PHP チュートリアルで Oracle データベース レコードを表示するためのクラス 2
//--------------------------------
// 仕事関数
//-------- ------------------------
//レコードの読み取り
//メインの作業関数、指定された条件に従ってテーブルから対応するレコードを読み取ります条件 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][値];
return $strQuery;
$prev=$this->Offset-$this->MaxLine; ($ prev>=0)
echo "<A href=$PHP_SELF?offset=".$prev.$strQuery." class=newslink>前のページ</A>";
else if($this->TheFirstPage ! =NULL)
echo "";
else echo "前のページ"; ){
$next=$this->Offset+$this->MaxLine;
$k=$this->Total-$this->StartRec;
if($nextecho " else
echo "次のページ";
}
//---- --- ------------------------
//レコードのグループ化
//---------- --- -----------------------
//グループ化を表示
function NumPage() {
$first=($this->CGroup-1)* ( $this->PGroup)+1;
$last=($first+$this->PGroup > $this->TPages+1):($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); // 渡される を生成します。パラメータ文字列
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 " ";
else echo " ";
}
if($ne!=-1)
echo "";
}
//******授業終了
?>