php分页代码及总结
代码部分:
<?PHP
header("Content-type:text/html;charset=utf-8");
$pageSize = 10;
//接收传入的分页码
$page = $_GET['p'];
//获取分页数据
$host = "localhost";
$username = "root";
$password = "";
$db = "lian";
$conn = mysql_connect($host,$username,$password);
if(!$conn){
echo "连接错误";
exit;
}
mysql_select_db($db);
mysql_query("SET NAMES UTF8");
$sql= "select * from page LIMIT ".(($page-1)*$pageSize).",".$pageSize;
$result = mysql_query($sql);
echo "<table border=1 cellspacing=0 width=40%>";
echo "<tr><td>id</td><td>name</td></tr>";
while($row = mysql_fetch_assoc($result)){
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "</tr>";
}
echo "</table>";
mysql_free_result($result);
$total_sql = "SELECT COUNT(*) FROM page";
$total_result = mysql_fetch_array(mysql_query($total_sql));
$total = $total_result[0];
$total_pages = ceil($total/$pageSize);
$showPage = 7;
$pageOffset = ($showPage-1)/2;
$start = 1;
$end = $total_pages;
mysql_close($conn);
//显示数据和分页
$page_banner = "";
if($page > 1){
$page_banner = "<a href='".$_SERVER['PHP_SELF']."?p=1'>首页</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一页</a>";
}
if($total_pages > $page){
if($page > ($pageOffset+1)&&$page < ($total_pages-2)){
$start = $page - $pageOffset;
$end = $page + $pageOffset;
}else if($page <= ($pageOffset+1)){
$start = 1;
$end = 7;
}else{
$start = $total_pages-6;
$end = $total_pages;
}
}else{
$start = 1;
$end = $total_pages;
}
for($i = $start;$i<=$end;$i++){
if($page == $i){
$page_banner .= "<span style='color:red'>".$i."</span>";
}else{
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".$i."'>".$i."</a>";
}
}
if($page < $total_pages){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($total_pages)."'>尾页</a>";
}
$page_banner .="共有".$total_pages."页";
$page_banner .="<form action='page.php' method='get'>";
$page_banner .="到第<input type='text' name='p' size='2'>页去";
$page_banner .="<input type='submit' value='确定'>";
$page_banner .="</form>";
echo $page_banner;
?>
总结部分:
1,接收传入的显示页面指令参数($page)
2,连接数据库利用sql语句从数据库取出数据,主要是select * from 表名 limit 开始位置,每页显示的条数
其中要注意limit后一定要放一个空格
3,从数据库查出总条数,ceil()函数操作总条数/每页显示的条数计算出总页数,其中ceil()是向上取整
4,前一页是$page-1,后一页是$page+1,首页是1,尾页是总页数
5,跳转到哪一页用一个表单传参即可
6,最重要的是显示页码,根据一个页面中显示几个页码、偏移量、总页数和一个页面中显示的页码数比较从而确定
页面中显示的第一个页码和最后一个页码,遍历输出所有要显示的页码。
php分页代码及总结的更多相关文章
- Oracle中经典分页代码!
在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...
- 纯js分页代码(简洁实用)
纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...
- PHP分页初探 一个最简单的PHP分页代码实现
PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...
- JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox
1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生 ...
- PHP分页初探 一个最简单的PHP分页代码的简单实现
PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...
- Sql万能分页代码
sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧 go ----万能分页代码create procedure [dbo].[sp_datapager] @pagesize int, ...
- java常用公共代码二之分页代码的实现
在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...
- 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件
分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...
- 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页
Service: /** * @Description: 1.保存定区 2.让分区关联定区 * 对象三种状态 1.持久态(被session管理对象-一级缓存中有对象) 2.托管态(有OID标识,数据 ...
- angular.js分页代码的实例
对于大多数web应用来说显示项目列表是一种很常见的任务.通常情况下,我们的数据会比较多,无法很好地显示在单个页面中.在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能.现在 ...
随机推荐
- 六 Vue学习 首页 (下)
一:Store介绍: state: 相当于数据 action: action去commit mutations mutation: 只有mutation 才能改变state 例: const stor ...
- jmeter设置默认为中文
1.编辑jmeter目录/bin/jmeter.porperties文件 2.点击将language的注释去掉,并将值变为zh_CN保存.
- Newtonsoft.Json null值不序列化
如果对当前序列化的实体全部生效的话使用如下: var jSetting = new JsonSerializerSettings {NullValueHandling = NullValueHandl ...
- 实验楼之Linux快捷、用户及文件权限、文件查看
实验二 知识点1:通常不是直接与系统打交道,而是通过一个叫做Shell的中间程序. shell即是用户交互的界面,又是控制系统的脚本语言.常用的有bash. zsh, ksh, csh, 命令行模式: ...
- 数据库路由中间件MyCat - 源代码篇(3)
此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 2. 前端连接建立与认证 Title:MySql连接建立以及认证过程client->MySql:1.T ...
- mock测试方法及实践改进
此文已由作者翟曜授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. mock测试常见的定义为:在测试过程中,对于某些不易构造或不易获取的对象,通过创建虚拟对象的方式来模拟测试的测 ...
- 交叉编译调试qemu_guest_agent
Winodws版本 编译环境Fedora23 下载VSS SDK的setup.exe 下载地址 提取VSS SDK头文件 将下面的代码保存成extract-vsssdk-headers.sh脚本,然后 ...
- 使用Unity实现动态2D水效果
http://forum.china.unity3d.com/thread-16044-1-1.html 在这片教程里面我们将会用简单的物理效果来模拟动态的2D水效果.我们将会使用Line Rende ...
- 01分数规划初探?!By cellur925
都要\(NOIp\)了为啥我还在看这种玄学玩意..... \(01\)分数规划:这是一个问题模型\(qwq\),一般是在求\[\frac{\sum_{i=1}^{n} a_i*x_i}{\sum_{i ...
- for循环,递归,函数封装作业
/******求100以内,所有的奇数和,求100以内,所有的偶数积*******/ // for循环方法 var sum=0; var sum1=1; for(var i=1;i<=100 ...