用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 "<table border=1 cellspacing=1 width=30%>";
echo "<tr><td>編號</td><td>姓名</td></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>{$row['id']}</td><td>{$row['name']}</td>";
echo "</tr>";
}
echo "</table>";
// 查詢總的頁數
$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 = "<div class='page'>";
$pageOffSet = ($showPage-1)/2;//偏移量
if ($page>1) {
$banner_page.= "<a href='".$_SERVER['PHP_SELF']."?p=1'>首頁</a>";
$banner_page.= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>";
}
// 初始化數據
$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{
$start = 1;
$end = $total>$showPage?$showPage:$total;
}if($page+$pageOffSet>$total){
$start = $start-($page+$pageOffSet-$end);
}
}
// 中間省略
for ($i=$start; $i <= $end; $i++) {
$banner_page.= "<a href='".$_SERVER['PHP_SELF']."?p=".($i)."'>{$i}</a>";
}
// 尾部的省略
if ($total>$showPage && $total>($page+$pageOffSet)) {
$banner_page.= "...";
}
if ($page<$total) {
$banner_page.= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>";
$banner_page.= "<a href='".$_SERVER['PHP_SELF']."?p={$total}'>尾頁</a>";
}
// 自定義跳轉頁數
$banner_page.="共{$total}頁跳轉到<form method='get' action='".$_SERVER['PHP_SELF']."'><input type='text' name='p' size='5' />頁<input type='submit' value='跳轉'/></form></div>";
echo "$banner_page";
?>
南昌雅騰IT職業(yè)技能培訓,專注網站開發(fā)與網頁設計培訓。
主要培養(yǎng):php程序開發(fā)工程師、web前端開發(fā)工程師、UI設計師。
咨詢熱線:15079188802(程老師),QQ:1939594233(微信同號)