php实现分页代码

mysql+php实现分页

数据库设计,如图

/**

* 1.获取页数

*/

$page = empty($_GET['p'])?1:($_GET['p']);

/**

* 2.处理数据

*/

// 链接数据库

$host = "127.0.0.1";

$user = "root";

$pwd = "root";

$db = "test";

$mysqli = mysqli_connect($host $user $pwd $db);

if (!$mysqli) {

echo "数据库连接错误";

exit();

}

// 设置参数

$pageSize = 10;

// 查询并显示数据(分页公式:(当前页-1)*每页显示的条数 每页显示的条数)

$sql = "select * from page limit ".($page-1)*$pageSize.""."{$pageSize}";

$result = mysqli_query($mysqli $sql);

echo "";

编号姓名

while ($row = mysqli_fetch_assoc($result)) {

{$row['id']}{$row['name']}

echo "";

}

echo "";

// 查询总的页数

$total_sql = "select count(*) from page";

$total_result = mysqli_fetch_array(mysqli_query($mysqli$total_sql));

$total = ceil($total_result[0]/$pageSize);

mysqli_close($mysqli);

/**

* 3.输出分页

*/

$showPage =5;// 显示页数

$banner_page = "

";

$pageOffSet = ($showPage-1)/2;//偏移量

if ($page>1) {

$banner_page.= "首页";

$banner_page.= "上一页";

}

// 初始化数据

$start = 1;

$end = $total;

// 数字前的省略(该部分内容顺序不可修改!!!)

if ($total>$showPage) {

if($page>$pageOffSet+1){

$banner_page .= "...";

} if($page>$pageOffSet) {

$start = $page-$pageOffSet;

$end = $total>$page+$pageOffSet?$page+$pageOffSet:$total;

}else{

$start = 1;

$end = $total>$showPage?$showPage:$total;

}if($page+$pageOffSet>$total){

$start = $start-($page+$pageOffSet-$end);

}

}

// 中间省略

for ($i=$start; $i <= $end; $i++) {

$banner_page.= "{$i}";

}

// 尾部的省略

if ($total>$showPage && $total>($page+$pageOffSet)) {

$banner_page.= "...";

}

if ($page<$total) {

$banner_page.= "下一页";

$banner_page.= "尾页";

}

// 自定义跳转页数

$banner_page.="共{$total}页跳转到页";

echo "$banner_page";

?>

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

【常见错误分析】ORA-01555错误解决一例

ORA-01555错误是一种在Oracle数据库中很常见的错误。尤其在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中...

31660
来自专栏Linyb极客之路

MySQL数据库“十宗罪”(十大经典错误案例)

Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)

18520
来自专栏肖洒的博客

校招助手数据存储PyMySQL

之前做了招聘会信息提醒之微信机器人,微信群已经建了5个,总体的用户大概有不到两千人。小目标是让西电今年找工作的人都能用上。 和几个小伙伴一拍即合,做个小程序吧!...

12620
来自专栏沃趣科技

复制状态与变量记录表 | performance_schema全方位介绍

不知不觉中,performance_schema系列快要接近尾声了,今天将带领大家一起踏上系列第六篇的征程(全系共7个篇章),在这一期里,我们将为大家全面讲解p...

21730
来自专栏一个会写诗的程序员的博客

13.4 库依赖冲突问题:Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path13.4 库依

引入第三方库'org.raml:raml-parser:0.8.12',导致slf4j依赖冲突。

92010
来自专栏乐沙弥的世界

Oracle 基于用户管理恢复的处理

Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整。除了使用RMAN工具以及第三方备份与恢复工具之外,基于

7520
来自专栏我的博客

Sqlite使用说明

安装apt-get install slqite .databases List names and files of attached databases(列...

38040
来自专栏Golang语言社区

【Go 语言社区】Go实现个留言本

一、分析 要实现这个下面是几个重要的东西。 1.数据库操作(go怎么操作数据库)、 2.输出js,css,图片等 3.html显示 ...

38090
来自专栏沃趣科技

ASM 翻译系列第三十三弹:REQUIRED_MIRROR_FREE_MB的含义

原作者:Bane Radulovic 译者: 陈亚军 审核: 魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy....

390100
来自专栏杨建荣的学习笔记

Oracle 12cR2中的ADG会话保留特性

Oracle 12cR2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guar...

30750

扫码关注云+社区

领取腾讯云代金券