Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert Baidu-ähnliches Paging

PHP implementiert Baidu-ähnliches Paging

小云云
小云云Original
2018-03-17 09:57:341700Durchsuche

Dieser Artikel zeigt Ihnen hauptsächlich ein Beispiel für die Verwendung von PHP zur Nachahmung von Baidu-Paging. Ich hoffe, dass es Ihnen helfen kann.

Grundstrategie

1. Fragen Sie zunächst die Gesamtzahl der Datensätze ab.

2. Stellen Sie die auf jeder Seite angezeigte Zahl ein und berechnen Sie sie die Gesamtzahl der Seiten

3. Fügen Sie einen Get-Wert „num“ hinzu, um anzugeben, auf welche Seite derzeit zugegriffen wird. Wenn es keinen Get-Wert für „num“ gibt, sollte die aktuelle Standardseite auf die erste Seite gesetzt werden!

4. Nehmen Sie eine Zeichenfolge, um den Seitenzahl-Link zu speichern. Diese Zeichenfolge wird auch Seitenzahl-Zeichenfolge genannt.

5. Bei der Abfrage sollten Sie die Limit-Klausel zur Einschränkung verwenden (Limit-Klausel-Paging-Prinzip)

Vollständige Baidu-ähnliche Paging-Funktion

Paging-Anforderungen

1, Wenn die aktuelle Seite die ersten 3 Seiten umfasst, ist die von $startNum angezeigte Anfangsseite 1 und die letzte von $endNum angezeigte Seite ist 5

2. Wenn die aktuelle Seite Seite 4 ist, ist $startNum 2, $endNum = $startNum +4. Wenn die aktuelle Seite Seite 5 ist, ist $startNum 3 und so weiter

3, die Seitennummer Die Startposition darf die Gesamtzahl der Seiten $pages – 4;


Der Code lautet wie folgt:

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);//得到了资源结果集

Verwandte Empfehlungen:

Teilen Sie einen Beispielcode von JavaScript, der die Baidu-Paging-Funktion imitiert

PHP-Code für die digitale Paginierungsklasse (Nachahmung des Baidu-Paginierungseffekts)

JQuery-Nachahmung des Baidu-Paginierungs-Footprint-Effekts code_jquery

Das obige ist der detaillierte Inhalt vonPHP implementiert Baidu-ähnliches Paging. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn