PHP通用分页
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> ';
$page_banner .= '<a href="'.$_SERVER['PHP_SELF'].'?p='.($page-1).'"><<上一页</a> ';
} 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通用分页的更多相关文章
- PHP通用分页(Pager)类
三种不同展示方式 附上style~ 1. 效果图1 2.效果图2 3. 效果图3 4. 分页类主体 <?php /** * PHP通用分页类 * show(2) 1 ... 62 63 6 ...
- ReactJS实现的通用分页组件
大家多少都自己写过各种版本的分页工具条吧,像纯服务版的,纯jsWeb板的,Angular版的,因为这个基础得不能再基础的功能太多地方都会用到,下面我给出以个用ReactJS实现的版本,首先上图看下效果 ...
- SQL Server 2008 通用分页存储过程
1.alert USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[dbTab_PagerHelper] Script Date: 08/22/ ...
- SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)
SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...
- 支持DISTINCT的通用分页存储过程(SQL2005)
/****** 对象: StoredProcedure [dbo].[P_CommonPagination] 脚本日期: 07/22/2009 10:22:01 ******/ SET ANSI_NU ...
- ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页
一.实体类或属性名与数据库关键字冲突问题1.实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 ...
- MySql通用分页存储过程
MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4 ...
- 【转】通用分页用户控件(DataGrid,DataList,Repeater都可以用它来分页)
通用分页控件(DataGrid,DataList,Repeater都可以用它来分页) 1.建立用户控件Pager.ascx 1.1 html </ASP:LABEL></TD> ...
- Oracle 存储过程之通用分页查询
在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage ( tableName in varcha ...
- 防SQL注入:生成参数化的通用分页查询语句
原文:防SQL注入:生成参数化的通用分页查询语句 前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存 ...
随机推荐
- TSOJ--2018 江苏省省赛
[2018 江苏省大学生程序设计大赛] K. 2018 (测试数据范围有扩大) Problem Given a, b, c, d, find out the number of pairs of int ...
- sublime text 3搭建python 的ide
感谢大佬-->原文链接 1. 打开Sublime text 3 安装package control Sublime Text 3 安装Package Control 2. 安装 SublimeR ...
- pep-8要求归纳
代码布局缩进每个缩进级别使用4个空格. 连续行应使用Python的隐式行连接括号,括号和大括号,或使用悬挂缩进 来垂直对齐包装元素.当使用悬挂式缩进时,应考虑以下内容:第一行应该没有任何争论,应该使用 ...
- centos 修改时间 计划任务
centos 修改时间 计划任务 一,系统时间修改 1 远程连接到centos 或者直接登录系统 #date 查看系统时间 如下图所示 2 #date -s 修改时间 看下面的例子#date -s ...
- 【LeetCode】Design Linked List(设计链表)
这道题是LeetCode里的第707到题.这是在学习链表时碰见的. 题目要求: 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的 ...
- sql语句中的join连接(左连接、右连接、全连接、内连接)
内部连接(inner join): select * from d_user a inner join D_ORGANIZATION b on a.COMPANY_XID=b.ID 内部链接也是排他 ...
- Wing IDE 6.0 算号器注册机代码
我开发Python时喜欢用Wing IDE, 然后最近发现Wing IDE升级到6.0版本了, 但是之前能在5.1上用的算号器代码不能用在6.0上了, 所以就上网搜搜是否有相关算号器, 果然, 找到了 ...
- Codeforces983E. NN country
新鲜出炉! $n \leq 200000$的树,给$m \leq 200000$条链,$q \leq 200000$个询问,每次问一条询问链最少用m条中的几条给定链覆盖其所有边,可能无解. 首先确定一 ...
- Python入门--12--函数与变量
python只有函数没有过程 函数有运行完了之后会有返回值.过程没有 def back(): return 1,'gg',2 #会有返回值(1,'gg',2) #注意默认返回元祖 一.全局和局部变量 ...
- linux磁盘I/O的性能评估
linux磁盘I/O的性能评估 参考自:自学it网,http://www.zixue.it/. (1)使用iostat命令. [test@localhost /]$ iostat -d Linux - ...