PHP는 페이징 표시 메시지...LOGIN

PHP는 페이징 표시 메시지 기능을 갖춘 간단한 방명록을 개발합니다.

페이지에 모든 사용자 댓글을 표시하고 페이징을 통해 표시합니다.

페이징의 일반적인 개념은 먼저 각 페이지에 표시해야 하는 메시지 수를 결정하고, 총 메시지 수를 각 페이지에 표시되는 메시지 수로 나누어 총 페이지 수를 구하는 것입니다. 균등하게 나눌 수 없는 경우 나머지 페이지는 별도의 페이지가 되며 전체 페이지 수는 +1됩니다.

6.png

이전 섹션에서 설정한 데이터베이스의 LyDB 클래스를 계속 사용하세요.

여기서는 페이지당 3개의 데이터를 표시하도록 설정되어 있습니다

<?php
$page_size=3;
?>

공개 함수를 사용하여 각 페이지에 표시되는 page_size 수, 메시지 수 ly_count 및 총 페이지 수 page_count를 배열 array에 넣습니다

<?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;
  }
//......省略  
}
?>

공개 함수를 사용하여 현재 페이지를 설정하세요. $page_no

현재 페이지가 1개 미만이라고 판단되면, 현재 페이지가 획득한 총 페이지 수보다 크면 첫 번째 페이지를 계속 표시합니다. 마지막 페이지가 표시됩니다

첫 번째 페이지와 마지막 페이지를 결정하세요

<?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" >
 当前第<?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>
다음 섹션
​<div class="pagination" > 当前第<?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>
코스웨어