第一步:传入页码
$page=isset($_GET['p'])?trim($_GET['p']):1;
第二步:链接数据库
第三步:取出数据
$sql="select * from my_page limit ".($page-1)*$pagesize .",{$pagesize}"; $result=mysqli_query($conn, $sql); while($row=mysqli_fetch_assoc($result)){ echo "<tr>"; echo "<td>{$row['id']}</td>"; echo "<td>{$row['name']}</td>"; echo "</tr>"; }
第四步:获取记录总数和总共的页码数
//获取数据总数 $total_sql="select count(*) from my_page"; $total_result=mysqli_query($conn, $total_sql); $total_info=mysqli_fetch_array($total_result); //对结果进行处理 $total=$total_info[0]; echo '总条数为:'.$total."<br>"; //计算页数 $total_page=ceil($total/$pagesize);//总页数
第五步:显示数据+分页条+分页条的省略号编写(最重要的是偏移量的计算及同显示页码之间的逻辑关系)
//计算偏移量 $pageoffset=($showpage-1)/2; if($page>1){ $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=1"."'>首页</a>"; $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'><上一页</a>"; }else{ $page_banner.="<span class='disable'>首页</span>"; $page_banner.="<span class='disable'><上一页</span>"; } //初始化数据(即用来表示从哪个页码开始显示,到哪个页码显示结束) $start=1; $end=$total_page; if($total_page>$showpage){ //总页码数大于了我们想要显示的页码数 if($page>$pageoffset+1){//并且当前页码大于了偏移量加一 $page_banner.="..."; } if($page>$pageoffset){//当前页码大于偏移量 //例如当前页是5是,起始位置就要为(5-2) $start=$page-$pageoffset; $end=$total_page>$page+$pageoffset?$page+$pageoffset:$total_page; }else{ //当前页码小于等于偏移量 $start=1; $end=$total_page>$showpage?$showpage:$total_page; } if($page+$pageoffset>$total_page){ $start=$start-($page+$pageoffset-$end); } } //显示数据 for($i=$start;$i<=$end;$i++){ if($page==$i){ $page_banner.="<span class='current'>{$i}</span>"; }else{ $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($i)."'>{$i}</a>"; } } if($total_page>$showpage&&$total_page>$page+$pageoffset){ $page_banner.="...."; } if($page<$total_page){ $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页></a>"; $page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=".($total_page)."'>尾页</a>"; }else{ $page_banner.="<span class='disable'>下一页></span>"; $page_banner.="<span class='disable'>尾页</span>"; } $page_banner.="<br>"."共{$total_page}页<br>";
第六步:跳转功能的实现
$page_banner.="<form action='my_page.php' method='get'>"; $page_banner.="到第<input type='text' size='2' name='p'>"; $page_banner.="<input type='submit' value='确定'>"; $page_banner.="</form>";