oracle|プログラム|ページング|例
include "/maya/inc/dbconn.php";
$sql="select max(rownum) from xqhtest where id<50";
$stmt=ociparse( $gConn,$sql);
ociexecute($stmt);
ocifetch($stmt);
$rowcount=ociresult($stmt,1);
ocifreestatement($stmt);
echo("Total".$rowcount. "Records
n");
$recordperpage=15; // 各ページに表示されるレコード数
$pages=ceil($rowcount/$recordperpage) // 合計ページ数
echo("Total" . $pages."page
n");
?>
id | name | < /tr>
//オフセットパラメータがスクリプトに渡されるかどうかを決定し、渡されない場合はデフォルト値0を使用します
if (empty($offset))
{
$offset=1;
}
$currentpage=ceil($offset/$recordperpage); // 現在のページを表示します
echo("Current page:".$currentpage."
n");
$endset=$offset+$recordperpage;
$ stmt2=ociparse($gConn,"SELECT rownum,id,name FROM xqhtest WHERE id//echo "SELECT id,name FROM xqhtest WHERE rownumn";
ociexecute($ stmt2) ;
//任意の SQL ステートメントを使用できますが、select の後には Oracle に固有の rownum が必要です!
while (ocifetch($stmt2))
{
echo("
| ".ociresult($stmt2,"NAME")." |
n");
/ /返されたレコードの表示に使用するコードに置き換えます
}
//すべてのページへのリンクを書き込むには
print "
";
for ($ i= 1; $i {
$newoffset=($recordperpage*($i-1))+1;
print "
$in";
}
print "
";
$nextoffset=$recordperpage*$currentpage+1;
$prevoffset=$recordperpage*($currentpage-2) +1 ;
//前のページ接続が必要かどうかを判断します
if (($currentpage>1) && ($currentpage<=$pages))
{
print "
n";
}
//次のページ接続が必要かどうかを決定します
if (($pages!=0) && ($currentpage<$pages))
{
print "< ;a href="$PHP_SELF?offset=$nextoffset">次のページ n";
}
ocifreestatement($stmt2);
ocilogoff($gConn);
?>
< /body>