干吗不写成个类呢?再帖:)<?php
/*---------------------------------
翻页类
@b.j
[email protected]
-----------------------------------*/
class page{
var $Begin_Rec;   //SQL中起始记录数  e.g : "limit $Begin_Rec,$..."
var $Page_Recs;   //每页显示记录数
var $Page_Num;   //当前页数
var $Page_Url;    //连接地址
var $Page_Count;  //总页数
var $Rec_Count;   //总记录数
var $Show_Num;   //阿拉伯数字显示 var $first="首页";
var $prev="上页";
var $next="下页";
var $last="尾页";
var $Page_Para="page"; //页面传递参数的名字 //构造函数
//参数说明
//Url: 获得页面连接
//pagesize: 获得页面内显示的记录数(满多少条记录即翻页的条件)
//page: :) 当前页数
//count:记录数量
//shownumber:是否显示 阿拉伯数字代表的页数  传递5 则显示5个阿拉伯数字(1-5),(6-10) 传递0时为不显示阿拉伯数字  目前测试使用为5
function page($Url,$pagesize,$page,$count,$shownumber=5)
{
if ($pagesize>=1)
{
$this->Page_Recs=round($pagesize);
}else
{
$this->Page_Recs=5;//如果非法的页面大小则每页显示记录数为5
} if (empty($Url))
{
$this->Page_Url="$"."PHP_SELF";//如果空的Url则指向$PHP_SELF
}else
{
$this->Page_Url=$Url;
} if ($page>=1)
{
$this->Page_Num=round($page);
}else
{
$this->Page_Num=1;//如果非法的页面数则指向$first
} if ($count>=1)
{
$this->Rec_Count=round($count);
}else
{
$this->Rec_Count=0;//如果非法的记录数则记录数为0
$this->print_page();
}
if ($shownumber>=0) $this->Show_Num=round($shownumber);
$this->Calc();
}
//计算函数
function Calc()
{
//计算当前页面的起始页
$this->Page_Count=ceil($this->Rec_Count/$this->Page_Recs);
if ($this->Page_Num>$this->Page_Count) $this->Page_Num=$this->Page_Count;
$this->Begin_Rec=($this->Page_Num-1)*$this->Page_Recs; //判断Url中是否包含?如果有则后加"&"  否则加"?"
$this->Page_Url.=(strpos($this->Page_Url,"?")>1)?"&":"?"; }
//输出函数  
/* 输出格式  | 首页 | 上页| 1 2 | 下页 | 尾页 转到 input here  页 共 xx 条记录 第 x 页/总 x 页*/
function print_page()
{
if ($this->Rec_Count<1)
{
echo "无符合条件记录";
}else
{
$Print_Str="<form method=\"post\" action=$this->Page_Url name=\"goto\">";
if ($this->Page_Num>1)
{
$Prev_Page=$this->Page_Num-1;
$Print_Str.="&nbsp&nbsp&nbsp|   <a href=\"$this->Page_Url$this->Page_Para=1\">$this->first</a>  |   <a href=\"$this->Page_Url$this->Page_Para=$Prev_Page\">$this->prev</a>";
}else
{
$Print_Str.="&nbsp&nbsp&nbsp|   $this->first  |  $this->prev";
}
/*--阿拉伯字母连接显示--*/
if ($this->Show_Num>0)//如果传递参数为0则不显示阿拉伯字母
{
$Print_Str.="|";
for ($i=$this->Page_Num-1;$i<=$this->Page_Count;$i++)
{
if ($i<1) continue;
if (($i-$this->Page_Num+1)>=$this->Show_Num) break;
$Print_Str.="&nbsp<A href=\"$this->Page_Url$this->Page_Para=$i\">$i</a>";
}
}
/*--阿拉伯字母连接显示结束--*/ if ($this->Page_Num<$this->Page_Count)
{
$Next_Page=$this->Page_Num+1;
$Print_Str.="&nbsp|   <a href=\"$this->Page_Url$this->Page_Para=$Next_Page\">$this->next</a>  |   <a href=\"$this->Page_Url$this->Page_Para=$this->Page_Count\">$this->last</a> ";
}else
{
$Print_Str.=" $this->next 1 $this->last ";
}
$Print_Str.="转到<input type=\"text\" name=\"$this->Page_Para\" maxlength=\"3\" size=\"2\" >页"; $Print_Str.="<input name=\"Submit\" type=\"submit\" value=\"GO\" align=\"middle\" width=\"12\" height=\"15\">"; $Print_Str.=" 共 $this->Rec_Count 条记录 第 $this->Page_Num 页/总 $this->Page_Count 页</form>"; echo $Print_Str;
}
}
//打印函数结束
/*--------------使用范例---------
@//  记得要引用先!
$Page_Over=new page("127.0.0.1/display.php",12,2,55,6);$Sql_Tmp="select * from tableA"$start=$Page_Over->Begin_Rec;$Sql_Tmp.=" limit $start,12";$Page_Over->print_page;//即可输出
--------------使用范例over-----------*/
}
?>