该实例根据慕课网视频制作
大致步骤:用GET方法传入页码后,从数据库取出数据,通过LIMIT语句显示自己想要的内容长度,再通过前端美化,从而形成我们的分页。
上代码之前:连接,选择数据库这些不多说,不过最后别忘了释放结果,关闭数据库!
关键部分
$page=$_GET['p']; //$page 是我们想要传入的页码
$sql="SELECT * FROM table LIMIT (开始位置,显示条数); //每页显示5条信息
$total="SELECT COUNT(*) FROM table";//查询表中的信息总数
$total_pages=ceil($count/每页显示条数);//获取总页数
这样其实第一页就做好了,接下来我们用$page_banner来显示我们的分页条,$page_banner里面的东西很多,所以要用连接符连接,最开始可以设置成空
$start=1;//初始化开始页
$end=$total_pages;//初始化结束页
$page_banner.="<a href='" .$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一页</a>";//通 过p的值以及<a>标签可以写出上一页的链接。首页、下一页、尾页同上。其中 $_SERVER['PHP_SELF']表示当前执行的脚本文件所在地址。
$pageOff0set =(每页显示条数-1)/2//位置偏移量,即选中页面左右各显示几页
页码显示
if($total_pages>$showPage){
if($page>$pageOffset+1){
$page_banner .="...";
}//总页数大于当前页,当前页超过了偏移量+1,显示省略号
if($page>$pageOffset){
$start=$page-$pageOffset;
$end=$total_pages>$page+$pageOffset?$page+$pageOffset:$total_pages ;
} else{
$start=1;
$end=$total_pages>$showPage?$showPage:$total_pages;
} //讨论当前页与偏移量的情况,起始页显示各不同
if($page+$pageOffset>$total_pages){
$start=$start-($page+$pageOffset-$end);
}
}
for($i=$start;$i<=$end;$i++) //最后用For循环显示
页码跳转
页码跳转其实就是一个表单传入
$page_banner.=" <form action='m.php' method='get' > ";
$page_banner .="<input type='text' size='2' name='p' >";
$page_banner .="<input type ='submit' value='确定'>";
$page_banner .="</form>";
最后我们来看一看样式方面的设计
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'>首页</a></span>";
$page_banner.="<span class='disable'>下一页</a></span>";
}//首先是首页,当前页>1是显示一个样子,小于1时显示另一个样子,随后我们会给class赋值
div.page span.disable{
border: #fff 1px solid; padding: 2px 5px 2px 5px;margin: 2px; color: #ddd;
以上的css只是一个例子,用标签直接嵌套进去就可以。
我做的~~~
这次只是抛砖引玉,个人做了一个十分简陋的分页,期待与各位的交流,期待下一次的进步!
点击查看更多内容
21人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦