首頁 >後端開發 >php教程 >一個ORACLE分頁程序,挺實用的._PHP教程

一個ORACLE分頁程序,挺實用的._PHP教程

WBOY
WBOY原創
2016-07-21 16:07:521057瀏覽




分頁測驗








//如何將結果分頁,就像MySQL 中的「限制」?
// ======================================== ======= ================
// Neil Craig (neilc@netactive.co.za) 的教學
// 日期:2001-06- 05
/ / 透過這個例子,我將解釋資料庫查詢的分頁,其中
// 結果超出了開發人員想要列印到頁面的範圍,但希望
// 將結果分割成單獨的
//本教學中存取的表格「SAMPLE_TABLE」有4 個欄位:
// PK_ID、FIELD1、FIELD2 和FIELD3。類型並不重要,但您應該
// 在 PK_ID 欄位上定義主鍵。

$display_rows = 5;     // 一次應該顯示的行。您可以
                       // 若您願意,且您願意修改此內容。

// 連接到Oracle 資料庫
putenv("ORACLE_SID=purk");
putenv("ORACLE_HOME=/export/oracle8i ");
putenv("TNS_ADMIN/$ network/admin");
$OracleDBConn = OCILogon("purk","purk","lengana.world");

/ / 此查詢對記錄進行計數
$sql_count = " SELECT COUNT(*) FROM SAMPLE_TABLE";

// 解析SQL 字串並執行它
$row_count=OCIParse($OracleDBConn, $sql_count );  $ >
// 從解析和執行的查詢中,我們取得找到的記錄數量。
// 我不會將此結果儲存到會話變數中,因為它允許
//在列印結果時
//由其他使用者輸入新記錄。
if (OCIFetch($row_count)) {
    $num_rows = OCIResult( $row_count,1);
} else {
    $num_rows = 0;

// 釋放用於此查詢的資源
OCIFreeStatement($row_count);

// 我們需要準備查詢將結果列印為一頁。我將
//詳細向您解釋查詢。

//如果網址中未指定頁面(例如http://mysite.com/result.php?page=2) ,
// 設定為第 1 頁。
if (empty($page) || $page == 0) {
    $page = 1;
}

// 列印結果的起始範圍
$start_range = (($page - 1) * $display_rows) 1;

// 結束範圍應列印結果
$ end_range = $page * $display_rows;

// 主查詢。它由嵌套在每個
// other 中的 3 個「SELECT」語句組成。中心查詢是您通常用來傳回您想要的
// 記錄的查詢。在此語句中是否進行排序和「WHERE」子句。
//我們選擇行來限制我們的結果,但因為行號
//在完成任何排序之前分配給行,讓程式碼列印the
// 結果未排序。
// 第二個嵌套的 "SELECTED" 將新的行號分配給結果
// 供我們選擇。

$sql = "SELECT PK_ID、FIELD1、FIELD2、FIELD3、ROW_NO FROM (SELECT PK_ID, ";
$sql .= "FIELD1、FIELD2、FIELD3、🎜>$sql .= "FIELD1、FIELD2、FIELD3、D31D3, FROL) ( ";
$sql .= "FIELD2 , FIELD3 FROM SAMPLE_TABLE ORDER BY FIELD3)) WHERE ROW_NO BETWEEN ";
$sql .= $start_range." AND ".$end_range;
$sql .= $start_range." AND ".$end_range;
$sql .= $開始結果格式化
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";

if ($num_rows != 0) {

    //解析SQL 字串&執行它
    $rs ;

    // 獲取列數以供稍後使用
    $num_columns = OCINumCols($rs);

    while (OCIFetch($rs)) {
        echo "";
        for ($i = 1; $i               echo "";
        }
        echo "";
  ,指出沒有找到記錄
    echo "抱歉!沒有找到記錄";
}

//關閉表
echo "
PK ID字段1字段2 字段3行號
$column_value
";

//釋放資源並關閉連接
OCIFreeStatement($rs);
OCILogoff ($OracleDBConn);

?>



/這裡我們將列印到其他頁面的連結

// 計算頁數
if ($num_rows % $display_rows == 0) {
    $total_pages = $num_rows / $ $display. else {
    $total_pages = ($num_rows / $display_rows) 1;
    settype($total_pages, 整數); // 對變數進行四四點
這不是第一次
一頁,則列印上一頁的連結
if ($page != 1) {
    echo "Previous";
}

// 現在我們可以列印到其他頁面的連結
for ($i = 1; $i     if ($page == $i){
        // 不要將連結連結至目前頁面
        //列印其他頁面的連結
        echo " ".$i."";
    }
}
}
}
}
}
}

// 如果這不是最後一頁,則列印下一頁的連結
if ($page     echo " 下一個";
}

?>


// 我只是添加此部分來打印一些變量以獲取額外信息
// 和一些調試

echo "

總頁數:" .$total_pages."

";
echo "

記錄數:".$num_rows."< ;/p>";
echo "

SQL 查詢是: ".$sql."

";

?> ;


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/315007.htmlTechArticle!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 3.2 Final//EN HEAD TITLEPaging Test/名稱=生成器內容=TextPad 4.0 元名稱=作者內容=? META NAME=關鍵字內容=?...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn