Home  >  Article  >  Backend Development  >  PHP implements Baidu-like paging

PHP implements Baidu-like paging

小云云
小云云Original
2018-03-17 09:57:341731browse

This article mainly shares with you examples of how to implement Baidu-like paging in PHP. I hope it can help you. Let’s take a look at the renderings first.

Basic strategy

1, First, query the total number of records

2, Set the number displayed on each page and calculate the total number of pages

3, Add a get value num to represent which page is currently being accessed. If there is no get value for num, the default current page should be set to the first page!

4, Take a string to save the page number link. This string is also called the page number string!

5, When querying, you should use the limit clause for restriction (limit clause paging principle)

Complete Baidu-like paging function

Paging requirements

1, When the current page is the first 3 pages, the initial page displayed $startNum is 1, and the last page displayed $endNum is 5

2. When the current page is page 4, $startNum is 2, $endNum = $startNum +4. When the current page is page 5, $startNum is 3, and so on

3, the page number The starting position cannot exceed the total number of pages $pages – 4;


The code is as follows:

Code

//应该加载视图文件之前和提取帖子的结果集之前进行分页
//以下的代码都和分页相关
//(1)定义当前选中的页码数
$pageNum = isset($_GET['num'])?$_GET['num']: 1;
//(2)定义每一页显示的记录数
$rowsPerPage = 5;
//(3)查询总记录
$sql="select count(*) as sum frompublish";
$result = my_query($sql);
$row = mysql_fetch_assoc($result);
$rowCount = $row['sum'];//得到总记录数
//(4)计算总页数
$pages = ceil($rowCount/$rowsPerPage);//得到总页数
//(5)拼凑页码字符串
$strPage = '';//页码字符串
//拼凑出首页
$strPage .= "<ahref=&#39;./list_father.php?num=1&#39;>首页</a>";
//拼凑出上一页
$preNum = $pageNum == 1 ? 1 : $pageNum-1;
$strPage .= "<ahref=&#39;./list_father.php?num=$preNum&#39;>上一页</a>";
 
//确定显示的初始页$startNum
if($pageNum<=3){
         $startNum= 1;
}else{
         $startNum= $pageNum - 2;
}
//确定显示的初始页$startNum的最大值
if($startNum > $pages- 4){
         $startNum= $pages-4;
}
//防止页码出现复制
if($startNum<=1){
         $startNum=1;
}
//确定显示的最后一页 $endNum
$endNum=$startNum+4;
//防止最后一页越界;
if($endNum>=$pages){
         //$endNum=$pageNum;//错误
         $endNum=$pages;
}
//拼凑出中间的页码
for($i=$startNum;$i<=$endNum;$i++){
         //如果$i刚好是选中的当前页,标红
         if($i==$pageNum){
                   $strPage.= "<a href=&#39;./list_father.php?num=$i&#39;><fontcolor=&#39;red&#39;>$i</font></a>";
         }else{
                   $strPage.= "<a href=&#39;./list_father.php?num=$i&#39;>$i</a>";
         }
         //$strPage.= "<a href=&#39;./list_father.php?num=$i&#39;>$i</a>";
 
        
}
/*for($i=1;$i<=$pages;$i++){
         $strPage.= "<a href=&#39;./list_father.php?num=$i&#39;>$i</a>";
}*/
 
 
////拼凑出下一页
$nextNum = $pageNum == $pages ? $pages :$pageNum+1;
$strPage .= "<a href=&#39;./list_father.php?num=$nextNum&#39;>下一页</a>";
//拼凑出尾页
$strPage .= "<ahref=&#39;./list_father.php?num=$pages&#39;>尾页</a>";
 
//提取帖子的结果集
$offset = $rowsPerPage*($pageNum-1);
$sql="select * from publish left joinuser on pub_owner=user_name order by pub_time desc limit$offset,$rowsPerPage";
$result=my_query($sql);//得到了资源结果集

Related recommendations:

Share a JavaScript sample code that imitates Baidu paging function

PHP digital paging class code (imitation Baidu paging effect)

jQuery imitation Baidu paging footprint effect code_jquery

The above is the detailed content of PHP implements Baidu-like paging. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn