首頁  >  文章  >  後端開發  >  php實作仿百度分頁

php實作仿百度分頁

小云云
小云云原創
2018-03-17 09:57:341700瀏覽

本文主要跟大家分享php實現仿百度分頁的實例,希望能幫助大家,我們先來看看效果圖。

基本策略

1,  首先要查詢總記錄數

2,  設定每頁顯示的數量並計算總頁數

3,  增加一個get傳值num代表目前存取的是哪一頁,如果沒有num的get傳值,應該設定預設的目前頁為第一頁!

4,  就拿一個字串來保存頁碼鏈接,這個字串也叫作頁碼字串!

5,  在查詢的時候,就應該使用limit子句進行限制(limit子句分頁原理)

完成仿百度分頁功能

分頁需求

1,  目前頁面是前3頁的時候,顯示的初始頁面$startNum是1,顯示的最後一頁$endNum是5

# 2,  當前頁是第4頁的時候,$startNum為2,$endNum = $startNum +4, 當前頁是第5頁的時候,$startNum為3,依次類推

3,  頁碼的起始位置不能超過總頁數$pages – 4;


#程式碼如下:

程式碼

//应该加载视图文件之前和提取帖子的结果集之前进行分页
//以下的代码都和分页相关
//(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);//得到了资源结果集

相關推薦:

分享一個JavaScript仿百度分頁函數的範例程式碼

############################################################# php數字分頁類別程式碼(仿百度分頁效果)############jQuery實作的仿百度分頁足跡效果程式碼_jquery########

以上是php實作仿百度分頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn