php通用分页,先看下样式

代码如下:

<style>
body {
font-size:12px;font-family:verdana;width:100%;
}
div.page{
text-align:center;
} div.content{
height:300px;
} div.page a{
border:#aaaadd 1px solid;text-decoration:none;padding:2px 5px 2px 5px;margin:2px;
} div.page span.current{
border:#000099 1px solid;background-color:#000099;padding:4px 6px 4px 6px;margin:2px;color:#fff;font-weight:bold;
} div.page span.disable{
border:#eee 1px solid;padding:2px 5px 2px 5px;margin:2px;color:#ddd;
} div.page form{
display:inline;
}
</style>
<?php
header("Content-type:text/html;charset=utf-8");
//传入页码
$page = isset($_GET['p']) ? $_GET['p'] : 1; $page = $page > 0 ? intval($page) : 1; $conn = mysql_connect("127.0.0.1","root","") or die('连接数据库失败');
mysql_select_db("demo",$conn);
mysql_query("SET NAMES UTF8"); $pageSize = 10;//每页显示的数据
$showPage = 5;//显示页码
$sql = "select * from demo limit ".($page-1)*$pageSize.",".$pageSize;
$result = mysql_query($sql,$conn); echo '<div class="content"><table border=1 cellspacing=0 width=40% align="center">';
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></div>';
mysql_free_result($result);
$total_sql = "select count(*) from demo";
$total_result = mysql_fetch_array(mysql_query($total_sql));
$total = $total_result[0]; //计算总页数
$total_page = ceil($total/$pageSize);
mysql_close($conn);
/*分页条*/
$page_banner = '<div class="page">'; //偏移量
$pageOffset = ($showPage-1)/2; if ($page > 1) {
$page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p=1">首页</a>&nbsp;';
$page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p='.($page-1).'"><<上一页</a>&nbsp;';
} else {
$page_banner .= '<span class="disable">首页</span>';
$page_banner .= '<span class="disable"><<上一页</span>';
} //page start //初始化数据
$start = 1;
$end = $total_page; if ($total_page > $showPage){
if ($page > $pageOffset+1) {
$page_banner.= '...';
} if ($page > $pageOffset) { //开始位置总是当前页-偏移量
$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.= '...';
} //page end
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 .= '共'.$total_page.'页';
$page_banner .= '到第<form action="mypage.php" method="get">';
$page_banner .= '<input type="text" size="2" name="p"/>页';
$page_banner .= '<input type="submit" value="确定"/>';
$page_banner .= '</form></div>';
echo $page_banner;

PHP通用分页的更多相关文章

  1. PHP通用分页(Pager)类

    三种不同展示方式 附上style~ 1. 效果图1 2.效果图2    3. 效果图3 4. 分页类主体 <?php /** * PHP通用分页类 * show(2) 1 ... 62 63 6 ...

  2. ReactJS实现的通用分页组件

    大家多少都自己写过各种版本的分页工具条吧,像纯服务版的,纯jsWeb板的,Angular版的,因为这个基础得不能再基础的功能太多地方都会用到,下面我给出以个用ReactJS实现的版本,首先上图看下效果 ...

  3. SQL Server 2008 通用分页存储过程

    1.alert USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[dbTab_PagerHelper] Script Date: 08/22/ ...

  4. SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)

    SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...

  5. 支持DISTINCT的通用分页存储过程(SQL2005)

    /****** 对象: StoredProcedure [dbo].[P_CommonPagination] 脚本日期: 07/22/2009 10:22:01 ******/ SET ANSI_NU ...

  6. ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页

    一.实体类或属性名与数据库关键字冲突问题1.实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 ...

  7. MySql通用分页存储过程

    MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4 ...

  8. 【转】通用分页用户控件(DataGrid,DataList,Repeater都可以用它来分页)

    通用分页控件(DataGrid,DataList,Repeater都可以用它来分页) 1.建立用户控件Pager.ascx 1.1 html </ASP:LABEL></TD> ...

  9. Oracle 存储过程之通用分页查询

    在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage ( tableName in varcha ...

  10. 防SQL注入:生成参数化的通用分页查询语句

    原文:防SQL注入:生成参数化的通用分页查询语句 前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存 ...

随机推荐

  1. skkyk:线段树浅谈

    推荐前辈学姐博客文章,写的很细 https://www.cnblogs.com/TheRoadToTheGold/p/6254255.html 学学半,此随笔主要是加深自己对线段树的理解 题目:洛谷P ...

  2. maven 打某一个模块的包

    mvn clean mvn clean install -pl benefit-microservice-gateway -am -Dmaven.test.skip=true

  3. loj2274 「JXOI2017」加法

    二分一下,然后从左到右扫描,扫到左端点就把区间 push 到堆里. 每次有点不符合二分的值时,就贪心地选择右端点最远的 add. #include <algorithm> #include ...

  4. svg path 动画效果

    http://www.zhangxinxu.com/wordpress/2014/04/animateion-line-drawing-svg-path-%E5%8A%A8%E7%94%BB-%E8% ...

  5. pycharm中脚本执行的3种模式(unittest框架、pytest框架、普通模式)

    背景知识,某次使用HTMLTestRunner的时候,发现一直都无法导出报告,后来查询资料发现了一些坑,现在整理一下来龙去脉. 一:pycharm默认的是pytest框架去执行unittest框架的测 ...

  6. 在VS2017中编写Python程序

    最近开始了python的学习,在搭建完python环境之后,在选择IDE的时候陷入了困境,首先选择的是PyCharm但是用着还是不习惯,毕竟用VS开发了几年了,突然换软件总感觉有点不适应,就想到了强大 ...

  7. BZOJ 3749: [POI2015]Łasuchy【动态规划】

    Description 圆桌上摆放着n份食物,围成一圈,第i份食物所含热量为c[i]. 相邻两份食物之间坐着一个人,共有n个人.每个人有两种选择,吃自己左边或者右边的食物.如果两个人选择了同一份食物, ...

  8. P1582 倒水 (二进制)

    题目描述 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒 ...

  9. 【2018.2.8-】网络流学习笔记(含ISAP!)

    网络流的基础内容就不详细发了,网上到处都是,可自学. 总版点这里 ps:以下有些链接是hihocoder的题目(题面有详细讲解),请确保先登录hihocoder,再点击进入相应题目网页. 最大流 基础 ...

  10. bzoj 2017 [Usaco2009 Nov]硬币游戏 动态规划

    [Usaco2009 Nov]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 431  Solved: 240[Submit][Status] ...