찾다
  • 로그인
  • 가입
비밀번호 재설정 성공

당신이 관심을 갖고 있는 프로젝트를 팔로우하고 그들에 관한 최신 뉴스를 맛보세요

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>
시사 Clear