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注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存 ...
随机推荐
- ORACLE 查询所有用户调度作业
--查询所有用户调度作业:select * from ALL_SCHEDULER_JOBS; --查询当前用户调度作业:select * from USER_SCHEDULER_JOBS; --查询当 ...
- PC上测试移动端网站和模拟手机浏览器
一.Chrome*浏览器 chrome模拟手机总共有四种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备.以下标星的为推荐方法. 1.新建Chrome快捷方式 右击桌面 ...
- 高级java、C#、php、SQL、JavaScript......+n多编程语言学习分享
/*入园两周年纪念.在搬砖之路一去不返*/ //搬砖什么都好,就是有点伤Ctrl键. <div style="display:none;"> </div>
- WordPress实现前台登录功能
一.添加登录表单 1.首先在当前主题的目录下新建一个php文件,命名为page-login.php,然后将page.php中的所有代码复制到page-login.php中: 2.删除page-logi ...
- php 注册与登录
<body background="timg.jpg"><div class="dak"> <div class="zu ...
- LogMiner配置使用手册
LogMiner配置使用手册 1 Logminer简介 1.1 LogMiner介绍 Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻 ...
- Python之转换py文件为无需依赖python环境的exe文件的方法
在日常工作中,使用python脚本开发快速敏捷,但是其代码是可见的,而且充分的依赖python开发环境.为了达到保护我们源码的目的,或者不依赖python开发环境使用python脚本,将其转换成可以直 ...
- 常州模拟赛d1t5 遗忘口令
就像每个人都会遇到的问题一样,贝西忘了在 cowtube 上的口令.不过,她还记着一些关于口令 的信息.首先,她确定口令由小写字母组成,长度为 L.其次,这个密码是由几个单词组合而成 的.贝西一共认识 ...
- Nova 组件详解
本节开始,我们将详细讲解 Nova 的各个子服务. 前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个.今天先讨论 nova-api 和 nova-cond ...
- python--输出自己需要的字符串连接的的方式
python中有很多字符串连接方式,今天在写代码,顺便总结一下,从最原始的字符串连接方式到字符串列表连接,大家感受下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法: ...