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注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存 ...
随机推荐
- eclipse中新建maven项目无法添加src/main/java问题
eclipse创建maevn web项目,在选择maven_archetype_web原型后,默认只有src/main/resources这个Source Floder. 按照maven目录结构,添加 ...
- 快速入门Numpy
教你十分钟学会使用numpy. 简单介绍一下numpy的话,这就是一个基于多维数组的python科学计算的核心库. 基本信息 # 一般用np作为numpy的缩写 import numpy as np ...
- Arthas诊断工具使用资料
1.https://github.com/alibaba/arthas/issues/327 2.https://alibaba.github.io/arthas/jad.html 3.https:/ ...
- 第一阶段Sprint 对其他团队评价
咱们的team 针对对“小学生网页四则运算”这个产品的评审,本人提出建议:1.第一阶段的产品Sprint不够好,无任务看板.无燃尽图.希望完善该产品的的Sprint,第二阶段的Sprint要认真写好. ...
- 【UML】关联、依赖、泛化、实现等关系说明
导读:再上一篇博客中,介绍了UML的9种图,现在,将对UML中的关系进行总结.图很重要,但图形中的各种关系也很重要,这扯关系的事儿,从来都是大事儿. 一.基本定义 1.1 总体说明 1.2 具体定义 ...
- Shell脚本学习指南 [ 第一、二章 ] 背景知识、入门
摘要:第一章介绍unix系统的发展史及软件工具的设计原则.第二章介绍编译语言与脚本语言的区别以及两个相当简单但很实用的Shell脚本程序,涵盖范围包括了命令.选项.参数.Shell变量.echo与pr ...
- BZOJ 3907: 网格【组合数学】
Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m.现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过 ...
- bzoj1411: [ZJOI2009]硬币游戏
1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 965 Solved: 420[Submit][Status ...
- vue项目实战, webpack 配置流程记录
vue项目实战记录,地址在这 购物车单界面 npm install npm run dev 跑起来可以看到界面效果 这里简单记录一下webpack的编译流程 入口 package.json " ...
- Longge的问题(bzoj 2705)
Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). Input 一 ...