代码部分:

<?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分页代码及总结的更多相关文章

  1. Oracle中经典分页代码!

    在Oracle中因为没有top关键字,所以在sqlserver中的分页代码并不适用于Oracle,那么在Oracle中如何来实现分页呢? --查询所有数据 STUNO STUNAME STUAGE S ...

  2. 纯js分页代码(简洁实用)

    纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...

  3. PHP分页初探 一个最简单的PHP分页代码实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  4. JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

    1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生 ...

  5. PHP分页初探 一个最简单的PHP分页代码的简单实现

    PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项. 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7.PHP分页代码核 ...

  6. Sql万能分页代码

    sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧 go  ----万能分页代码create procedure [dbo].[sp_datapager] @pagesize int, ...

  7. java常用公共代码二之分页代码的实现

    在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...

  8. 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件

    分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...

  9. 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页

    Service: /** * @Description: 1.保存定区  2.让分区关联定区 * 对象三种状态 1.持久态(被session管理对象-一级缓存中有对象) 2.托管态(有OID标识,数据 ...

  10. angular.js分页代码的实例

    对于大多数web应用来说显示项目列表是一种很常见的任务.通常情况下,我们的数据会比较多,无法很好地显示在单个页面中.在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能.现在 ...

随机推荐

  1. fragment getActivity()空指针

    Fragment弹出toast,时不时出现getActivity()空指针,具体原因未查到. 解决办法: if (null == fragment || !fragment.isAdded()) { ...

  2. Pseudo Random Nubmer Sampling

    Pseudo Random Nubmer Sampling https://en.wikipedia.org/wiki/Inverse\_transform\_sampling given a dis ...

  3. iOS三方支付--微信支付/支付宝支付

    一.微信支付 1.注册账号并申请app支付功能 公司需要到微信开放品台进行申请app支付功能 , 获得appid和微信支付商户号(mch_id)和API秘钥(key) . Appsecret(secr ...

  4. GitBook 入门学习

    一.什么是 Gitbook GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML.PDF.eBook 等格式的电子书 ...

  5. [UE4]Montage动画设置Slot

    最后一张图看下,配合官网motage教程,容易理解push anim具体用法 http://aigo.iteye.com/blog/2277545 如何新建一个Montage的步骤这里省略了,网上很多 ...

  6. UE4 中的 C++ 编程介绍

    https://docs.unrealengine.com/latest/CHN/Programming/Introduction/index.html UE4 中的 C++ 编程介绍 Unreal ...

  7. Unity ShaderLab 光照随笔

    unity camera默认3种渲染路径,unity5.50里面有4种 camera Rendering Path 1 vertexLit(逐顶点,一般在vert中处理)  2 forward (前向 ...

  8. 洛谷 P3372 【模板】线段树 1

    P3372 [模板]线段树 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别 ...

  9. MySQL最佳客户端工具 -- SQLyog 13.1.1.0 安装与注册

    一.前言 SQLyog是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库!SQLyog是业界著名的 Webyog 公司出品的一款简洁高效.功能强大的图 ...

  10. IT兄弟连 Java语法教程 Java开发环境 配置Java环境变量

    在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12  未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时 ...