博主信息
博文 8
粉丝 0
评论 0
访问量 6809
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php+mysql分页原理实现
蓝谑的博客
原创
952人浏览过
  • 第一步:传入页码

$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>";


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学