php写带分页的留言板,php中分页程序之基于留言板详解_PHP教程

文章是重点是讲php中的分页原理,同时我们是利用一个实现来讲解如何在php中实现分页,这个就是基于自己写的留方板程序了,有需要的朋友可以参考一下,很适合于初学者哦。

分页的关键问题其实在于Mysql的一个关键字limite这个关键字后边跟的两个数字,第一个是需要记录的开始行数,第二个数字是从这个开始行数后取得几行记录——这一点大家不要误以为是从第几行开始到第几行结束,相差很远的。

看看我们index.php的第19行:

代码如下

复制代码

$recordSql = $sql. ” LIMIT “.$page*$pagesize.”,”.$pagesize;

其中变量$page的判断在程序的第8行和第9行得到的:

代码如下

复制代码

if(isset($_GET[‘page’])&&$_GET[‘page’]!=”) $page=$_GET[‘page’];

else $page=0;

当然大家也看到了$_GET[‘page’]变量这个下文会说到。

变量$pagesize我们在第7行自己定义的,也就是每页显示多少条记录,我们定义的是10条。当变量$page=0的时候我们语句最终会是这样的:

代码如下

复制代码

$recordSql = “SELECT a . * , b.name, b.email, b.qq, c.revert_time, c.revert

FROM post a

LEFT JOIN revert c ON ( a.id = c.post_id ) , guest b

WHERE a.guest_id = b.id

ORDER BY a.id DESC

” LIMIT 0,10″;

就是从0条记录开始取得10个记录结果——这个是包括第0条记录的;

当$page=1的时候呢?可想而知了——这个时候$page*$pagesize=10,当然是从……不说了,再说就罗嗦了。

还有需要说的是,为什么我们要在取得总行数之后才加上这个limit呢,很简单嘛,如果我们在取得结果记录数的时候就加上这个limit,我们总行数永远不会大于10,因为加上之后他最多返回的记录数就是10啊兄弟。——这个显然不符合实际情况。所以我们在执行了:

代码如下

复制代码

mysql_num_rows(mysql_query($sql));

取得总记录数,之后才加上limit关键字的。

好了我们已经取得了总记录数,设置了每页显示的记录数10,现在我们需要的就只有总页数了,这个小学的问题我就不说了吧?当然是总记录数除以每页显示的数就是总页数了——当然也有除不尽的时候,例如总记录数11每页显示10个,我们需要分几页呢?当然是两页呢,怎么才能让11/10=2呢?——显然是错误的,但是实际生活就这样并不是完美的数学。使用ceil函数啊,这个上一章也说过了,不说了。

看看我们现在有什么了啊:

代码如下

复制代码

总记录数,$numRecord = mysql_num_rows(mysql_query($sql));

总页数,$totalpage = ceil($numRecord/$pagesize);

我们什么都不缺了,就差如何显示“上一页下一页”了,很简单,两个判断就搞定了,看index.php的159-163行:

第160行:

代码如下

复制代码

if($page>0) echo “上一页|” ;

如果变量$page>0的话,也就是当前的页码大于0说明有上一页,那么就显示“上一页”的链接,这个链接里面的$page需要减一,例如当前页是2,那么上一页当然是1了是不是,当我们点击上一页的时候,随着这个链接将会把page=1传递过去,这种依靠链接传递变量的方式就是get方法。 这就回到了程序8行9行进行处理了。

在161行,我们做的判断是,如果当前页数小于总记录数-1——因为我们的页码是从0开始的,所以总记录数要减一进行判断才符合实际。如果这个判断成立,说明还有下一页,下一页的时候$page当然要加一了。

好了整个分页就是这样了,只要记住,如何取得总记录数,如何为sql语句加上limit关键字,如何判断显示上下页,一切都ok了

完整的代码

代码如下

复制代码

$pagesize = 10;//每一页显示多少留言记录

if(isset($_GET[‘page’])&&$_GET[‘page’]!=”) $page=$_GET[‘page’];

else $page=0;

$sql = “SELECT a . * , b.name, b.email, b.qq, c.revert_time, c.revert

FROM post a

LEFT JOIN revert c ON ( a.id = c.post_id ) , guest b

WHERE a.guest_id = b.id

ORDER BY a.id DESC”;

$numRecord = mysql_num_rows(mysql_query($sql));

$totalpage = ceil($numRecord/$pagesize);

$recordSql = $sql. ” LIMIT “.$page*$pagesize.”,”.$pagesize;

$result = mysql_query($recordSql);

while($rs=mysql_fetch_object($result)){

?>

留言人:name?> |Email:email?>|QQ:qq?>|留言时间:post_time+8*3600)?>

if(isset($_SESSION[‘login’])&&$_SESSION[‘login’]){

?>

” >删除

}

?>

留言内容:post))?>

回复内容:revert))?>[revert_time!=””) echo date(“Y-m-d H:i:s”,$rs->revert_time+8*3600)?> ]

}

?>

if($page>0) echo “上一页|” ;

if($page

?>

www.bkjia.comtrueTechArticle文章是重点是讲php中的分页原理,同时我们是利用一个实现来讲解如何在php中实现分页,这个就是基于自己写的留方板程序了,有需要的朋…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Daynamic 动态添加属性

所谓的Dynamic 动态类型&#xff0c;页面也要是动态的&#xff08;强撸&#xff09; 很简单的 直接上代码&#xff1a; //案例一 DynamicpersonCollection new ObservableCollection(); for (var i 0; i < 10; i) { dynamic p new ExpandoObject(); ((IDictionary<str…

豆瓣9分+纪录片,每一部都美到窒息......

全世界只有3.14 % 的人关注了爆炸吧知识自然类的纪录片一直是BBC的金字招牌&#xff0c;制作精良的纪录片&#xff0c;不仅能让孩子享受视觉的艺术&#xff0c;还能通过独特的视角去解读大自然&#xff0c;真正激发出孩子探索世界的热情。也适合大人影迷们在看了N部电影后视觉疲…

Android中常用到的权限

android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问"properties"表在checkin数据库中&#xff0c;改值可以修改上传 android.permission.ACCESS_COARSE_LOCATION 允许一个程序访问CellID或WiFi热点来获取粗略的位置 android.permission.ACCESS_FINE_LOC…

英语中十二个月份的由来

最近在学习英文&#xff0c; 先从月份开始喽~~把整理来的12个月份分享一下(*^__^*) 一月January在罗马传说中&#xff0c;有一位名叫雅努斯的守护神&#xff0c;生有先后两副脸&#xff0c;一副回顾过去&#xff0c;一副眺望未来。人们认为选择他的名字作为除旧迎新的第一个月月…

java编写算术平均数,[求助]基础-怎样编一个计算算术平均数的程序(急啊)

[求助]基础-怎样编一个计算算术平均数的程序(急啊)刚刚开始学习JAVA,不好意思明天就要交作业了,还是编不出高手帮忙吧题目:编写一个计算随意多少个数的算术平均数的程序首先要有一个对话框,可以输入你要计算的数字如果输入的是0,则马上计算结果,0不算在内例如:输入的是1,-2,0.则…

程序怎么跑着 就卡死,句柄泄漏,内存泄漏了

一&#xff1a;背景 1. 讲故事上个月中旬&#xff0c;星球里的一位朋友在微信找我&#xff0c;说他的程序跑着跑着内存会不断的缓慢增长并无法释放&#xff0c;寻求如何解决 &#xff1f;得&#xff0c;看样子星球还得好好弄&#xff01;&#xff01;&#xff01;&#x1f602;…

活久见!一美国大爷发明了永不掉链子的自行车,垂直踩踏即可驱动

全世界只有3.14 % 的人关注了爆炸吧知识©文丨 直观学机械、自行车网最近&#xff0c;一款能永不掉链子的自行车特别火&#xff0c;咱们今天来看看它长什么样。这款自行车据说是由美国洛杉矶的一位老大爷 Rodger Parker 设计的&#xff0c;名叫&#xff1a;NuBike。设计自行…

学习xss的一些记录(一)

最近正在学习关于xss的一些知识&#xff0c;作为一个前端开发者&#xff0c;这个知识也是基础的&#xff0c;以前也没怎么好好学习与总结&#xff0c;深感惭愧&#xff0c;接下来的几天时间好好补习下。 xss是什么 xss的全称是Cross Site Scripting&#xff0c;即跨站脚本。攻击…

如何用matlab消除谐波,如何在含有整次谐波和非整次谐波的信号中去除整次谐波?...

陷波器程序如下&#xff0c;麻烦帮忙看看clc;clear all;close all;x 0 : 0.05 : 10;s 210 * exp(-0.25 * x) .* cos(2 * pi * 1.5 * x pi) 110 * exp(0.25 * x) .* cos(2 * pi * 1.0 * x pi/2 );%load data;%scc;Nlength(s); % 信号长度fs1000;…

使用Hot Chocolate创建ASP.NET Core GraphQL服务

GraphQL介绍GraphQL是一个用于API的查询语言&#xff0c;是一个使用基于类型系统来执行查询的服务端运行时。GraphQL对你的API中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余。Hot Chocolate介绍Hot Choc…

MFC中的文件读写技术

计算机室如何管理自身所存放着的大量的信息的呢&#xff1f;windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。 面向存储的文件技术 什么是文件&#xff1f;计算机中&#xff0c;一篇文章、一幅图片、一个程序等都是以文…

[转]十五分钟介绍 Redis数据结构

下面是一个对Redis官方文档《A fifteen minute introduction to Redis data types》一文的翻译&#xff0c;如其题目所言&#xff0c;此文目的在于让一个初学者能通过15分钟的简单学习对Redis的数据结构有一个了解。 Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统…

为什么大部分男生比女生高?原因让你意想不到

全世界只有3.14 % 的人关注了爆炸吧知识古往今来&#xff0c;不论东西南北&#xff0c;男女之间的画风都是&#xff1a;这样的▼这样的▼大家可以看出一个早已成为常识的问题&#xff1a;男人普遍比女人要高、要强壮&#xff0c;说白了就是四肢发达。然而&#xff0c;这到底是为…

Android之学习安卓每天成长笔记

8月7日 1 、安装了反编译工具 jad net.sf.jadclipse_3.3.0.jar 或者在help install software http://feeling.sourceforge.net/update/ 2 、生成excel 读取Excel里面的数据搞定 这里使用的是jxl.jar 3、 1、 1 2 、1 2 4 、 1 2 4 7 2 、2 4、 2 4 7 4 、4 7、 7 int sum=0,…

ubuntu 没有php.ini,linux – 在Ubuntu中我对php.ini进行了更改,但没有任何反应

嗨,Apache与PHP运行良好,但我在php.ini中所做的任何更改都没有效果,我甚至删除了该文件的所有内容,然后重启Apache,并运行phpinfo(),并且令人惊讶的是一切都继续运行良好.我正在编辑的文件是出现在phpinfo()中的文件,如“已加载的配置文件”. (/etc/php5/apache2/php.ini)附&am…

MyBatis --教程

2019独角兽企业重金招聘Python工程师标准>>> 本文参考如下这篇优秀文章 http://www.yihaomen.com/article/java/302.htm 一、什么是myBatis&#xff1f; myBatis是一个基于java的持久层框架&#xff0c;它支持普通SQL查询、支持存储过程和高级映射。它使用简单的XML…

System.Text.Json 中的 JsonExtensionData

System.Text.Json 中的 JsonExtensionDataIntro最近两天在排查我们 API 的一个问题&#xff0c;查看源码过程中发现 System.Text.Json 里有一个有意思的 JsonExtensionData在反序列化的时候&#xff0c;如果反序列化的 Model 中没有对应的属性信息&#xff0c;这些信息就会丢失…

双向链表的删除操作

双向链表的删除操作转载于:https://www.cnblogs.com/LoveFishC/archive/2012/12/20/3845821.html

“中科院博士后当辅警”,网友却吵翻了:家里有矿?

全世界只有3.14 % 的人关注了爆炸吧知识这两天的热搜上有一位小哥哥特别引人关注有人看到了发际线有人看到了书香门第的出身更多人留意到了他的学历和身份香港大学博士、中科院博士后四川公安一名辅警↓↓↓缪元颖&#xff0c;四川省成都市公安局高新区分局的一名辅警&#xff…

用java写的常见排序

/** * @author Think *折半插入排序 */ public class binInsertSort { private static int a[]={22,3,43,11,99,88,34,34,33,22,11,1};public static void main(String[] args) {int []b=binInsertSort(a,0,12);for(int i=0;i<b.length;i++){System.out.print(a[i]+&quo…