天天看點

php實作分頁代碼

mysql+php實作分頁

資料庫設計,如圖

/**

* 1.擷取頁數

*/

$page = empty($_GET['p'])?1:($_GET['p']);

* 2.處理資料

// 連結資料庫

$host = "127.0.0.1";

$user = "root";

$pwd = "root";

$db = "test";

$mysqli = mysqli_connect($host $user $pwd $db);

if (!$mysqli) {

echo "資料庫連接配接錯誤";

exit();

}

// 設定參數

$pageSize = 10;

// 查詢并顯示資料(分頁公式:(目前頁-1)*每頁顯示的條數 每頁顯示的條數)

$sql = "select * from page limit ".($page-1)*$pageSize.""."{$pageSize}";

$result = mysqli_query($mysqli $sql);

echo "";

編号姓名

while ($row = mysqli_fetch_assoc($result)) {

{$row['id']}{$row['name']}

// 查詢總的頁數

$total_sql = "select count(*) from page";

$total_result = mysqli_fetch_array(mysqli_query($mysqli$total_sql));

$total = ceil($total_result[0]/$pageSize);

mysqli_close($mysqli);

* 3.輸出分頁

$showPage =5;// 顯示頁數

$banner_page = "

";

$pageOffSet = ($showPage-1)/2;//偏移量

if ($page>1) {

// 初始化資料

$start = 1;

$end = $total;

// 數字前的省略(該部分内容順序不可修改!!!)

if ($total>$showPage) {

if($page>$pageOffSet+1){

$banner_page .= "...";

} if($page>$pageOffSet) {

$start = $page-$pageOffSet;

$end = $total>$page+$pageOffSet?$page+$pageOffSet:$total;

}else{

$end = $total>$showPage?$showPage:$total;

}if($page+$pageOffSet>$total){

$start = $start-($page+$pageOffSet-$end);

// 中間省略

for ($i=$start; $i <= $end; $i++) {

// 尾部的省略

if ($total>$showPage && $total>($page+$pageOffSet)) {

$banner_page.= "...";

if ($page<$total) {

// 自定義跳轉頁數

$banner_page.="共{$total}頁跳轉到頁";

echo "$banner_page";

?>