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. The North American Invitational Programming Contest 2018 H. Recovery

    Consider an n \times mn×m matrix of ones and zeros. For example, this 4 \times 44×4: \displaystyle \ ...

  2. bs4--官文--修改文档树

    修改文档树 Beautiful Soup的强项是文档树的搜索,但同时也可以方便的修改文档树 修改tag的名称和属性 在 Attributes 的章节中已经介绍过这个功能,但是再看一遍也无妨. 重命名一 ...

  3. 【bzoj4408】[Fjoi 2016]神秘数 主席树

    题目描述 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13},1 = 12 = 1+13 = 1+1+14 = 45 = 4+16 = 4+1+1 ...

  4. 【Luogu】P1586四方定理(DP)

    题目链接 此题使用DP.设f[i][j]表示数i用j个数表示,则对于所有的k<=sqrt(i),有 f[i][j]=∑f[i-k*k][j-1] 但是这样会有重复情况.所以先枚举k,再枚举i和j ...

  5. day02-菜单处理

    解决力度到按钮的级别 ----------------------------------------------------------------------------------------- ...

  6. Lucky and Good Months by Gregorian Calendar(poj 3393)

    大致题意: 科普文一篇,文章80%都是无用信息,因为都是常识,但是又不得不看,因为有20%是常人不知道的历史常识. 定义: Goog month : 该月第一个工作日为星期一的月份 Luckly mo ...

  7. 洛谷 [P4035] 球形空间生成器

    高斯消元 注意浮点误差,判断一个浮点数是否为 0 的时候,看他的绝对值与 \(10^{-8}\)的关系 #include <iostream> #include <algorithm ...

  8. R语言入门视频笔记--4--R的数据输入

    输入 R的数据输入可以大体三种: 1.键盘输出 2.从文本文件导入 3.从Excel中导入数据 一.从键盘输入 首先创建一个数据框,玩玩嘛,瞎建一个 mydata <- data.frame(a ...

  9. ELK之Kibana部署、收集系统日志、一个文件收集多个日志

    1.安装及配置Kibana cd /usr/local/src yum -y install kibana-5.4.0-x86_64.rpm grep "^[a-Z]" /etc/ ...

  10. mysql主从读写分离,分库分表

    1.分表 当项目上线后,数据将会几何级的增长,当数据很多的时候,读取性能将会下降,更新表数据的时候也需要更新索引,所以我们需要分表,当数据量再大的时候就需要分库了. a.水平拆分:数据分成多个表 b. ...