php 5鏈接 oracle 10gphp
php oracle 分頁html
<?php
//buyicode studio 20/12/2009
//總記錄數
$sql = "select ROWNUM rn from 社員固定情報";
$par = ociparse($db_conn, $sql);
ociexecute($par);
$nRecords = ocifetchstatement($par, $rs);
//取得頁碼
$page = $_GET['page'];
//定義每頁顯示信息條數
$page_size = 5;
//當頁碼參數爲空時,將頁碼設爲1
if ($page == "")
{
$page = 1;
}
//當頁碼大於1時,每頁的開始記錄是 (頁碼-1) * 每頁記錄數 +1
$startRow = ($page - 1) * $page_size + 1;
$endRow = $page * $page_size;
//方法一
$cmdstr = "select *
from
(
select ROWNUM rn ,temp.*
from (select * from 社員固定情報) temp
where ROWNUM <= $endRow
)
where rn >= $startRow";
//方法二
$cmdstr = "select *
from
(
select temp.*, ROWNUM rn
from (select * from 社員固定情報) temp
)
where rn between $startRow and $endRow ";
//執行查詢SQL
$parsed = ociparse($db_conn, $cmdstr);
ociexecute($parsed);
$nrows = ocifetchstatement($parsed, $results);
echo "<html><head><title>Oracle PHP Test</title></head><body>";
echo "<center><h2>Oracle PHP Test</h2>\n";
//表字段名獲取
$arrName = array_keys($results);
echo "<table border=1 cellspacing='0' width='70%'>\n<tr>\n";
for ($i = 0; $i < count($arrName); $i++)
{
echo "<td>" . $arrName[$i] . "</td>\n";
}
echo "</tr>\n";
//循環輸出記錄
for ($i = 0; $i < $nrows; $i++)
{
echo "<tr>\n";
foreach ($results as $data)
{
echo "<td>$data[$i]</td>\n";
}
echo "</tr>\n";
}
echo "<tr><td colspan='" . count($arrName) . "'> Number of Rows:$nRows</td></tr></table>\n<br>";
//顯示分頁
//Pages: First Prev 1 2 3 4 5 6> Next Last
//總頁數
$totalPage = ceil($nRows / $page_size);
//上一頁連接
$Prev = $page - 1;
if ($Prev < 1)
{
$Prev = 1;
}
//下一頁連接
$Next = $page + 1;
if ($Next > $totalPage)
{
$Next = $totalPage;
}
//輸出上一頁連接
if ($page <> 1)
{
echo '<span><a href="?page=1">First</a></span>';
echo '<span><a href="?page=' . $Prev . '">Prev</a></span>';
}
else
{
echo '<span>First</span>';
echo '<span>Prev</span>';
}
//頁碼數字連接
//顯示的數字個數
$pageNumber = 5;
//頁碼數算法
$pagebegin = $page - $pageNumber;
if ($page == 1)
{
$pageend = $pageNumber;
}
else
{
$pageend = $page + $pageNumber;
}
if ($pagebegin <= 0)
{
$pagebegin = 1;
}
if ($pageend > $totalPage)
{
$pageend = $totalPage;
}
//一次向前翻$pageNumber行
if ($page > $pageNumber)
{
echo '<span><a href="?page=' . ($page - $pageNumber) . '"><<</a></span>';
}
//輸出動態生成的頁碼連接
for ($i = $pagebegin; $i <= $pageend; $i++)
{
if ($i == $page)
{
echo '<span style="background:#FFCC99">' . $i . '</span>';
}
else
{
echo '<span><a href="?page=' . $i . '">' . $i . '</a></span>';
}
}
//一次向後翻$pageNumber行
if (($totalPage - $page) > 5)
{
echo '<span><a href="?page=' . ($page + $pageNumber) . '">>></a></span>';
}
//輸出下一頁連接
if ($page <> $totalPage)
{
echo '<span><a href="?page=' . $Next . '">Next</a></span>';
echo '<span><a href="?page=' . $totalPage . '">Last</a></span>';
}
else
{
echo '<span>Next</span>';
echo '<span>Last</span>';
}算法
?>sql