在PHP開發中框架可見是運用的越來越廣泛,框架用多了原生不練習漸漸的都會以往了,希望大家不要把基礎的東西給以往哦!我們這篇文章講的是PHP結合MySQL實作原生分頁,而現在一般的框架都封裝了分頁類別,不需要大家手動寫。不過閒來無事的時候可以試著寫一下,鍛鍊一下編寫程式碼能力。
PHP+MYSQL分頁主要是根據SQL語句中的limit來實現的。
limit語句:
select * from table limit `limit`,`offset`;
可以將其中的limit看做是分頁的頁數,offset看做是每頁顯示的條數。
實作效果如圖:
這裡只是一個實例程式碼,主要實作分頁功能,頁面效果等相關沒有刻意偵錯。
主要實現功能有:首頁、尾頁、上一頁、下一頁、統計總頁數、定位目前頁、數字顯示,最大四個,其餘則以...表示。
具體程式碼實作:
這裡是使用PDO操作的資料庫
<?php header("Content-type:text/html;charset=utf-8"); // 1、传入页码 $page = $_GET['p']; // 2、根据页码取出数据 $pdo = new PDO('mysql:host=localhost;dbname=ceshi','root','root'); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); $sql = 'SELECT * FROM `goods` LIMIT :start,:offset'; $limit = ($page-1)*3; $offset = 3; $stmt = $pdo->prepare($sql); $sqlnum = 'SELECT COUNT(*)FROM `goods`'; $stmtnum = $pdo->prepare($sqlnum); $stmtnum->execute(); $num = $stmtnum->fetch(PDO::FETCH_ASSOC); $stmt->bindParam(':start',$limit); $stmt->bindParam(':offset',$offset); if(!$stmt->execute()){ throw new Exception('查找失败',1); } $data = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($data); // 3、显示数据+显示分页条 /**总页数**/ $end = floor($num['COUNT(*)']/$offset)+1; $page_banner ='<a href="'.$_SERVER['PHP_SELF'].'?p=1"> 首页</a>'; if($page <=1){ $page_banner .= '<a style="color:#B8BBB3;"> 上一页</a>'; }else{ $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page -1).'"> 上一页</a>'; } if($page+3>4){ $page_banner .= '...'; } if(($page+4)>=$end){ $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-3).'"> '.($end-3).'</a>'; $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-2).'"> '.($end-2).'</a>'; $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-1).'"> '.($end-1).'</a>'; $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end).'"> '.($end).'</a>'; }else{ for($i=0;$i<4;$i++){ $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page+$i).'"> '.($page+$i).'</a>'; } } if(($page+4)<$end){ $page_banner .= '...'; } if($page <=$num['COUNT(*)']/$offset){ $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page +1).'"> 下一页</a>'; }else{ $page_banner .='<a style="color:#B8BBB3;"> 下一页</a>'; } $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.$end.'"> 尾页</a>'; $page_banner .='<span> 总共'.$end.'页</span> 当前第<span>'.$page."页</span>"; echo $page_banner; ?>
大家可以在本地自己練習練習喔!不懂的更要多練習咯!這些原生基礎的東西忘了到最後就很難再撿起來了! !
相關推薦:
今天就來跟大家分享一款好用好看的php分頁類!
今天就帶大家來解析一下php分頁的原理。
這篇文章主要介紹了萬能的php分頁類,特別好用,需要使用php分頁類的朋友不要錯過。
大量資料的顯示就需要對內容進行分頁,本文章就是就是介紹thinkphp分頁進行整理,有需要的朋友一起來了解一下。
以上是PHP結合MySQL實作原生分頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!