来个php+oracle的 <?php $display_rows = 50;if( isset($_GET['page']) ){ $page = intval( $_GET['page'] ); } else{ $page = 1; } $sql_count = "SELECT COUNT(*) FROM users where USERSTATUS='0'";// Parse the SQL string & execute it $row_count=OCIParse($conn, $sql_count); if($row_count) { OCIExecute($row_count);if (OCIFetch($row_count)) { $num_rows = OCIResult($row_count,1); } else { $num_rows = 0; // If no record was found }// Free the resources that were used for this query OCIFreeStatement($row_count);if (empty($page) || $page == 0) { $page = 1; } // The start range from where the results should be printed $start_range = (($page - 1) * $display_rows) + 1; // The end range to where the results should be printed $end_range = $page * $display_rows;$sql = "SELECT USERID,USERNAME,TRUENAME,SCHOOLID,USERGRADE,ROW_NO FROM (SELECT USERID, "; $sql .= "USERNAME,TRUENAME,SCHOOLID,USERGRADE, ROWNUM ROW_NO FROM (SELECT USERID,USERNAME, "; $sql .= "TRUENAME,SCHOOLID,USERGRADE FROM USERS WHERE USERSTATUS='0' ORDER BY USERID)) WHERE ROW_NO BETWEEN "; $sql .= $start_range." AND ".$end_range; //$sql = "select USERID,USERNAME,USERPSW,TRUENAME,SEX from users where USERSTATUS='1' order by USERGRADE limit ". $start_range.", $end_range"; ?> <?php if ($num_rows % $display_rows == 0) { $total_pages = $num_rows / $display_rows; } else { $total_pages = ($num_rows / $display_rows) + 1; settype($total_pages, integer); // Rounding the variable } echo "页次: <font color=red><strong>"; echo $page; echo "</font></strong>/<strong>"; echo $total_pages; echo "</strong>页 共<font color=red><strong>"; echo $num_rows; echo "</font></strong>个 <strong>"; echo $display_rows; echo "</strong>个/页 "; // If this is not the first page print a link to the previous page if ($page != 1) { echo "<a href='".$PHP_SELF."?page=".($page - 1)."'>【上一页】</a>"; }// Now we can print the links to the other pages for ($i = 1; $i <= $total_pages; $i++) { if ($page == $i){ // Don't print the link to the current page echo " ".$i; } else { //Print the links to the other pages echo " <a href='".$PHP_SELF."?page=".$i."'>【".$i."】</a>"; } }// If this is not the last page print a link to the next page if ($page < $total_pages) { echo " <a href='".$PHP_SELF."?page=".($page + 1)."'>【下一页】</a>"; }?>
baidu/google 一下关键字“php分页类/函数”
<?php
$display_rows = 50;if( isset($_GET['page']) ){
$page = intval( $_GET['page'] );
}
else{
$page = 1;
} $sql_count = "SELECT COUNT(*) FROM users where USERSTATUS='0'";// Parse the SQL string & execute it
$row_count=OCIParse($conn, $sql_count);
if($row_count)
{
OCIExecute($row_count);if (OCIFetch($row_count)) {
$num_rows = OCIResult($row_count,1);
} else {
$num_rows = 0; // If no record was found
}// Free the resources that were used for this query
OCIFreeStatement($row_count);if (empty($page) || $page == 0) {
$page = 1;
}
// The start range from where the results should be printed
$start_range = (($page - 1) * $display_rows) + 1;
// The end range to where the results should be printed
$end_range = $page * $display_rows;$sql = "SELECT USERID,USERNAME,TRUENAME,SCHOOLID,USERGRADE,ROW_NO FROM (SELECT USERID, ";
$sql .= "USERNAME,TRUENAME,SCHOOLID,USERGRADE, ROWNUM ROW_NO FROM (SELECT USERID,USERNAME, ";
$sql .= "TRUENAME,SCHOOLID,USERGRADE FROM USERS WHERE USERSTATUS='0' ORDER BY USERID)) WHERE ROW_NO BETWEEN ";
$sql .= $start_range." AND ".$end_range;
//$sql = "select USERID,USERNAME,USERPSW,TRUENAME,SEX from users where USERSTATUS='1' order by USERGRADE limit ". $start_range.", $end_range";
?>
<?php
if ($num_rows % $display_rows == 0) {
$total_pages = $num_rows / $display_rows;
} else {
$total_pages = ($num_rows / $display_rows) + 1;
settype($total_pages, integer); // Rounding the variable
}
echo "页次: <font color=red><strong>";
echo $page;
echo "</font></strong>/<strong>";
echo $total_pages;
echo "</strong>页 共<font color=red><strong>";
echo $num_rows;
echo "</font></strong>个 <strong>";
echo $display_rows;
echo "</strong>个/页 ";
// If this is not the first page print a link to the previous page
if ($page != 1) {
echo "<a href='".$PHP_SELF."?page=".($page - 1)."'>【上一页】</a>";
}// Now we can print the links to the other pages
for ($i = 1; $i <= $total_pages; $i++) {
if ($page == $i){
// Don't print the link to the current page
echo " ".$i;
} else {
//Print the links to the other pages
echo " <a href='".$PHP_SELF."?page=".$i."'>【".$i."】</a>";
}
}// If this is not the last page print a link to the next page
if ($page < $total_pages) {
echo " <a href='".$PHP_SELF."?page=".($page + 1)."'>【下一页】</a>";
}?>
/**
* 分页函数
* @param String $query 传递参数的字符串
* @param Int $total 总的数据条数
* @param Int $page_size 每一页显示的数据条数
* @param String $filename 分页的文件
* @param Int $model 选择分页的形式
* @param String $style 连接的样式:style='border:1px #999999 solid;'
* @return String 返回分页字符串
*/
function get_page($query,$total,$page_size,$filename,$model=5,$style="")
{
$recordcount=$total;
$page=$_GET["page"];
if(($page<0)||(!isset($page))) $page=1;
$pages=ceil($recordcount/$page_size);
if ($page>$pages) $page=$pages;
$first=1;
$prev= ($page<=1) ? 1 : ($page-1);
$next= ($page>=$pages) ? $pages : ($page+1);
$last=$pages;
if ($query=="")
$type="";
else
$type = "&".$query;
$style = ($style=="") ? "" : " class='".$style."'";
$feystr="记录总数: <font color='#FF6500'>".$recordcount."</font> 页数: <font color='#FF6500'>".$page."/".$pages."</font> ";
switch($model){
case 1:
if (($page==1)&&($pages>1)){
$feystr.="第一页 ";
$feystr.="<a href='".$filename."?page=".$next."$type'$style>下一页</a> ";
$feystr.="<a href='".$filename."?page=".$last."$type'$style>最后一页</a> ";
}
if(($page>1)&&($page<$pages)){
$feystr.="<a href='".$filename."?page=".$first."$type'$style>第一页</a> ";
$feystr.="<a href='".$filename."?page=".$prev."$type'$style>上一页</a> ";
$feystr.="<a href='".$filename."?page=".$next."$type'$style>下一页</a> ";
$feystr.="<a href='".$filename."?page=".$last."$type'$style>最后一页</a> ";
}
if(($page==$pages)&&($pages!=1)){
$feystr.="<a href='".$filename."?page=".$first."$type'$style>第一页</a> ";
$feystr.="<a href='".$filename."?page=".$prev."$type'$style>上一页</a> ";
$feystr.="最后一页 ";
}
$feystr.=" 选择页码: <select name='page_now' id='page_now' onChange=\"javascript:window.open(page_now.value,'_self')\">";
for($i=1;$i<=$pages;$i++){
if($_GET["page"]==$i){
$feystr.="<option value='".$filename."?page=".$i."$type' selected>".$i."</option>";
} else {
$feystr.="<option value='".$filename."?page=".$i."$type'>".$i."</option>";
}
}
$feystr.="</selected>";
break;
case 2:
for($j=1;$j<=$pages;$j++){
if ($page==$j){
$feystr.="$i";
} else {
$feystr.=" <a href='".$filename."?page=".$j."$type'$style>[".$j."]</a> ";
}
}
break;
case 3:
$feystr .= "<a href='".$filename."?page=".$prev.$type."'$style><img src='images/prev.gif' border='0'></a>";
for($i=1;$i<=$pages;$i++)
{
if ($i==$page)
{
$feystr .= "<b> ".$i." </b>";
}
else
{
$feystr .= "<a href='".$filename."?page=".$i.$type."'$style> ".$i." </a>";
}
}
$feystr .= "<a href='".$filename."?page=".$next.$type."'$style><img src='images/next.gif' border='0'></a>";
break;
case 4:
$feystr="第".$page."页/共".$pages."页 | 总".$recordcount."条记录 | ";
if(($page==1)&&($pages>1)){
$feystr.="首页 | 上页 | ";
$feystr.="<a href='".$filename."?page=".$next."$type'$style>下页</a> | ";
$feystr.="<a href='".$filename."?page=".$last."$type'$style>尾页</a> | ";
}
if(($page>1)&&($page<$pages)){
$feystr.="<a href='".$filename."?page=".$first."$type'$style>首页</a> | ";
$feystr.="<a href='".$filename."?page=".$prev."$type'$style>上页</a> | ";
$feystr.="<a href='".$filename."?page=".$next."$type'$style>下页</a> | ";
$feystr.="<a href='".$filename."?page=".$last."$type'$style>尾页</a> | ";
}
if(($page==$pages)&&($pages!=1)){
$feystr.="<a href='".$filename."?page=".$first."$type'$style>首页</a> | ";
$feystr.="<a href='".$filename."?page=".$prev."$type'$style>上页</a> | ";
$feystr.="下页 | 尾页 | ";
}
$feystr.="<input name='pageTo' type='text' size='5' id='pageTo'> ";
$feystr.="<input type='submit' name='Submit' value='GoTo' onClick=\"javascript:location.href='".$filename."?page='+pageTo.value+'$type';\">";
break;
case 5:
$feystr="共".$recordcount."条记录 每页显示".$page_size."条记录 共".$pages."页 ";
if($page>1)
$feystr.="<a href='".$filename."?page=1".$type."'$style>首页</a> <a href='".$filename."?page=".($page-1).$type."'$style>前页</a> ";
else
$feystr.="首页 前页 ";
$offset = floor($page/10);
$page_left = $offset==0 ? 1 : $offset*10;
$page_right= $pages<($page_left+10) ? $pages : $page_left+10;
if($page_right==11) $page_right = $page_right-1;
for($i=$page_left;$i<=$page_right;$i++)
{
if($i==$page)
$feystr.="<font color=red>$i</font> ";
else
$feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
}
if($page<$pages)
$feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>后页</a> <a href='".$filename."?page=".$pages.$type."'$style>尾页</a>";
else
$feystr.="后页 尾页";
break;
case 6:
$feystr="Total ".$recordcount." field show per page ".$page_size." field total ".$pages." page ";
if($page>1)
$feystr.="<a href='".$filename."?page=1".$type."'$style>First</a> <a href='".$filename."?page=".($page-1).$type."'$style>Prev</a> ";
else
$feystr.="First Prev ";
$offset = floor($page/10);
$page_left = $offset==0 ? 1 : $offset*10;
$page_right= $pages<($page_left+10) ? $pages : $page_left+10;
if($page_right==11) $page_right = $page_right-1;
for($i=$page_left;$i<=$page_right;$i++)
{
if($i==$page)
$feystr.="<font color=red>$i</font> ";
else
$feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
}
if($page<$pages)
$feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>Next</a> <a href='".$filename."?page=".$pages.$type."'$style>End</a>";
else
$feystr.="Next End";
break;
case 7:
$feystr="Total ".$recordcount." notes Each page ".$page_size." notes Total ".$pages." pages ";
if($page>1)
$feystr.="<a href='".$filename."?page=1".$type."'$style>First</a> <a href='".$filename."?page=".($page-1).$type."'$style>Front</a> ";
else
$feystr.="First Front ";
$offset = floor($page/10);
$page_left = $offset==0 ? 1 : $offset*10;
$page_right= $pages<($page_left+10) ? $pages : $page_left+10;
if($page_right==11) $page_right = $page_right-1;
for($i=$page_left;$i<=$page_right;$i++)
{
if($i==$page)
$feystr.="<font color=red>$i</font> ";
else
$feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
}
if($page<$pages)
$feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>Next</a> <a href='".$filename."?page=".$pages.$type."'$style>Final</a>";
else
$feystr.="Next Final";
break;
}
return $feystr;
}
?>
//调 用: page(string 待分页SQL,int 当前页,int 每页主题数,int 页码条页数,int 前导页码数)
//返回值: array("bar"=>"页码条string","sql"=>"当前分页SQL")
//待解决:$url=$_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?"&p=":"?p="); //分析URI,如果含?则?p=,不含则为&p=
//分页信息
define("_P_TOPIC",8); //每页主题数
define("_P_NUM",7); //分页栏的页码数
define("_P_PRE",3); //当前页前导function page($sql,$p,$_p_topic=_P_TOPIC,$_p_num=_P_NUM,$_p_pre=_P_PRE)
{
//以下初始化各项参数
$parr=array("bar"=>'',"sql"=>'');
$re=@mysql_query($sql) or die(ErrorInfo());
$alltopic=@mysql_num_rows($re);
if($alltopic<=0) return 0; //无主题直返回
$pagebody="";$pagego=""; //参数初始化
$pa=ceil($alltopic/$_p_topic); //求得总页数,进一取整
if($p<=0 || $p>$pa) $p=1; //当前页不在范围,初始化当前页
$url=$_SERVER['PHP_SELF'].'?p=';
//以下求解页码范围$pa与当前页$p
if($pa>$_p_num) //最大页数大于"页码条所列页数"
{
if($p>=1 && $p<=$_p_pre) {$ps=1;$pe=$_p_num;} //当前页处于前导页内
elseif($p>$_p_pre && $p<=$pa-$_p_num+$_p_pre) {$ps=$p-$_p_pre;$pe=$p+$_p_num-$_p_pre-1;} //当前页处于正常范围
else {$ps=$pa-$_p_num+1;$pe=$pa;} //当前页处于页尾$pa>=$p>$pa-$_p_num+$_p_pre
$pagego=" <input style='vertical-align:middle;width:24px;' type='text' onKeyDown=\"if(event.keyCode==13) {window.location='".$_SERVER["PHP_SELF"]."?p='+this.value; return false;}\">";
}
else
{ $ps=1;$pe=$pa; } //最大页数小于"页码条所列页数"
//以下构建页码条
for($i=$ps;$i<=$pe;$i++)
{
$pagebody.=($i==$p)?" <span class='nowpage'> ".$i." </span> ":" <span><a href='".$url.$i."'> ".$i." </a></span> ";
}
//以下构建返回数组的值
$parr["bar"]="\n<div id='page'>\n<span> ".$p."/".$pa." ".$alltopic.":".$_p_topic." </span>".($pa>$_p_num?($p==1?'':' <span> <a href=\''.$url.'1\' title=\'第一页\'> |< </a></span>').$pagebody.($p==$pa?'':'<span><a href=\''.$url.$pa.'\' title=\'最后一页\'> >| </a> </span>'):$pagebody).$pagego."\n</div>\n";
$parr["sql"]=$sql." LIMIT ".($p-1)*$_p_topic.",".$_p_topic;
return $parr;
}