//-----------------------------
// 实现分页效果
//-----------------------------
class PageChange
{
/*
**变量$page:所请求页码.
**变量$page_size:页面结果行数.
**变量$result_amount:从数据库提取出的结果总数.
**变量$page_count:由$page_size,$result_amount计算得到的页面数量.
**变量$linkbar:由以上变量生成的分页导航.
*/
var $page,$page_size,$result_amount,$page_count,$linkbar;
/*
**PageChange构造函数,获取$_GET["page"],$_POST["page_size"].
*/
function PageChange($inputPage,$inputPageSize,$inputResultAmount)
{
$this->page=$inputPage;
$this->page_size=$inputPageSize;
$this->result_amount=$inputResultAmount;
}
/*
**函数ReturnPage(),返回请求页数page.
*/
function ReturnPage()
{
return $this->page;
}
/*
**函数ReturnPageSize(),返回请求页数page_size.
*/
function ReturnPageSize()
{
return $this->page_size;
}
/*
**函数ReturnResultAmount(),返回从数据库中提取的结果总数.
*/
function ReturnResultAmount()
{
return $this->result_amount;
}
/*
**函数ReturnPageCount(),返回总页数page_count.
*/
function ReturnPageCount()
{
if($this->result_amount)
{
if($this->result_amount<$this->page_size){$this->page_count=1;}
if($this->result_amount%$this->page_size){$this->page_count=(int)($this->result_amount/$this->page_size)+1;}
else{$this->page_count=$this->result_amount/$this->page_size;}
}
else
{$this->page_count=0;}
return $this->page_count;
}
/*
**函数PrintPageBar(),打印分页导航.
*/
function PrintPageBar()
{
$page=$this->page;
$page_count=$this->page_count;
$this->linkbar="("."$page".'/'."$page_count".")";
if($page==1)
{$this->linkbar.=" 第一页 | 上一页 | ";}
else{$this->linkbar.= ' <a href=?page=1>第一页</a> | <a href=?page='.($page-1).'>上一页</a> | ';}
if(($page==$page_count)||($page_count==0)){$this->linkbar.='下一页 | 尾页';}
else{$this->linkbar.= '<a href=?page='.($page+1).'>下一页</a> | <a href=?page='.$page_count.'>尾页</a>';}
echo "<div id='pagebar'>";
echo "$this->linkbar";
echo "</div>";
}
}
//-----------------
//分页类实现部分源码
//-----------------
$page_size=8;//每页显示数量
if(isset($_GET["page"]))//获取超连接页码page
{$page=intval($_GET["page"]);}
else
{$page=1;}//若未取得,则显示第一页
$queryTotal="SELECT count(*) AS amount FROM guestbook";
$resultTotal= mysql_query($queryTotal,$connect);
$rowTotal = mysql_fetch_array($resultTotal);
$amount=$rowTotal["amount"];
$GetPageChange=new PageChange($page,$page_size,$amount);//实例化分页类
$query="select * from guestbook order by ReDate desc limit ".($GetPageChange->ReturnPage()-1)*$GetPageChange->ReturnPageSize().",".$GetPageChange->ReturnPageSize();
$GetPageChange->ReturnPageCount();
$result=mysql_query($query,$connect);
$resultcount = mysql_num_rows($result);
if($resultcount)
{
while($row=mysql_fetch_array($result,MYSQL_BOTH))
{
echo "<div class=/"guestBookTitle/">";
echo $row["loginID"]."留下的信息:";
if($Array["type"]==3)
{
echo "[<a href="."guestbook.php?action=delete&id=".$row["ID"].">删除</a>]";
}
echo "</div>";
echo "<div class=/"guestBookContent/">".$row["content"]."</div>";
echo "<div style=/"margin-bottom: 10px;width:73%;padding:0px;text-align:right;/">留言时间:".$row["ReDate"]."</div>";
}
}
else {print("<BR /><FONT COLOR=RED>暂无留言</FONT>");}
$GetPageChange->PrintPageBar();//打印分页条