PHP開發(fā)簡單留言本之分頁顯示留言功能
要在頁面顯示所有的用戶留言,并通過分頁顯示。
分頁的一般思路是:先確定每頁需要顯示的留言數(shù)目,拿總的留言數(shù)除以每頁顯示的留言數(shù),得到總頁數(shù),如果不能整除,余數(shù)單獨(dú)成為一個頁面,總頁數(shù)+1。
繼續(xù)使用上一節(jié)設(shè)置的數(shù)據(jù)庫的類LyDB。
這里設(shè)置每頁顯示3條數(shù)據(jù)
<?php $page_size=3; ?>
通過一個公共函數(shù)把每頁顯示數(shù)page_size,留言數(shù)ly_count,總頁數(shù)page_count放到一個array數(shù)組中
<?php class LyDb{ //....省略 public function select_page_info(){ $sql = "select count(*) as pagecount from ly"; $query = mysqli_query($this->link,$sql); $row = mysqli_fetch_assoc($query); $ly_count=$row["pagecount"]; $page_count=($ly_count%$this->page_size==0)?($ly_count/$this->page_size):($ly_count/$this->page_size+1); $page_info=array("ly_count"=> $ly_count,"page_count"=>(int)$page_count,"page_size"=>$this->page_size); return $page_info; } //......省略 } ?>
通過一個公共函數(shù)來設(shè)置當(dāng)前頁$page_no
判斷當(dāng)前頁小于1時,繼續(xù)顯示第一頁,當(dāng)前頁大于所得總頁數(shù)時,顯示最后一頁
確定首頁和末頁
<?php lass LyDb{ //....省略 public function select_page_result(&$page_no){ $page_info=$this->select_page_info(); if(!isset($page_no))$page_no=1; else if($page_no<1)$page_no=1; else if($page_no>$page_info["page_count"])$page_no=$page_info["page_count"]; $first=($page_no-1)*$this->page_size; $sql="select * from ly order by id desc limit $first,$this->page_size "; $query=mysqli_query($this->link,$sql); $page_result=array("page_data"=>$query,"page_info"=>$page_info,"page_no"=>$page_no); return $page_result; } //......省略 } ?>
在前端頁面中添加分頁功能
<div class="pagination" > 當(dāng)前第<?php echo $page_result["page_no"];?>頁/ 共<?php echo $page_result["page_info"]["page_count"];?>頁/ 每頁顯示<?php echo $page_result["page_info"]["page_size"]; ?>條/ 共<?php echo $page_result["page_info"]["ly_count"]; ?>條留言 <a href="index.php?pn=<?php echo ($page_result['page_no']-1);?>">上一頁</a> <a href="index.php?pn=<?php echo ($page_result['page_no']+1);?>">下一頁</a> <a href="index.php?pn=1">首頁</a> <a href="index.php?pn=<?php echo ($page_result['page_info']['page_count']);?>">尾頁</a> </div>