php分页原理教程及简单实例
<?php
//连接数据库
$con = mysql_connect("localhost","root","");
mysql_select_db("xueshengchu",$con);
mysql_query("set names utf8"); $pageSize = 5; //每页显示数据条数 $result = mysql_query("select * from stu_msg");
$totalNum = mysql_num_rows($result); //数据总条数 $totalPageCount = intval($totalNum/$pageSize); //总页数 //判断当前页是哪一页
$nowPage = isset($_GET['page']) ? intval($_GET['page']) : 1;
//上一页
$prev = ($nowPage-1 <= 0) ? 1 : $nowPage-1;
//下一页
$next = ($nowPage+1 >= $totalPageCount) ? $totalPageCount : $nowPage+1; //偏移量
$offset = ($nowPage-1)*$pageSize; /*ok,这就可以取数据啦,其实只要你明白sql语句就知道了分页原理
* select * from table limit $offset,$size分页执行语句
*/
$sql = "select * from stu_msg limit $offset,$pageSize";
$result = mysql_query($sql,$con);
while($arr = mysql_fetch_array($result)){
echo $arr['mid'].$arr['content']."<br />";
}
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=1\">首页</a>";
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=".$prev."\">上一页</a>";
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=".$next."\">下一页</a>";
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=".$totalPageCount."\">尾页</a>";
?>
以上php实例运行的结果如下:
上面php代码已经注释的很清楚,相信出手也会明白!下面还是对php教程做下简单的分析:
1.全局变量$_SERVER['PHP_SELF']是获取脚本变量的绝对路径,可以打印出看看就清楚了。
2.分页的本质是将数据库的的数据一段一段的显示出来,比如上面的php实例中:
取出前5条(第一页):select * from table limit 0,5
取出第5到1第10条(第二页):select * from table limit 5,5
这样得出了偏移量的公式:$offset = ($nowPage-1)*$pageSize;
3.intval() 函数是获取变量的整数值
~php分页是不是so easy!~
php分页原理教程及简单实例的更多相关文章
- ajax原理总结附简单实例及其优点
在工作中用了Ajax N多次了,也看过一些相关方面的书籍,也算是认识了它,但是一直没有认真总结和整理过相关的东东,失败! 近有闲情,将之总结如下: [名称] Ajax是Asynchronous Jav ...
- Wordpress解析系列之PHP编写hook钩子原理简单实例
Wordpress作为全球应用最广泛的个人博客建站工具,有很多的技术架构值得我们学习推敲.其中,最著名最经典的编码技术架构就是采用了hook的机制. hook翻译成中文是钩子的意思,单独看这个词我们难 ...
- vue教程2-04 vue实例简单方法
vue教程2-04 vue实例简单方法 vue实例简单方法: vm.$el -> 就是元素 vm.$data -> 就是data <!DOCTYPE html> <htm ...
- Win Socket编程原理及简单实例
[转]http://www.cnblogs.com/tornadomeet/archive/2012/04/11/2442140.html 使用Linux Socket做了小型的分布式,如Linux ...
- Linux C Socket编程原理及简单实例
部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx 1. 什么是TCP/IP.UDP? 2. Socket在哪里 ...
- 最新 Eclipse IDE下的Spring框架配置及简单实例
前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...
- Oracle 分页原理
oracle rownum 及分页处理的使用方法 在实际应用中我们经常碰到这样的问题,比如一张表比较大,我们只要其中的查看其中的前几条数据,或者对分页处理数据.在这些情况下我们都需要用到rownum. ...
- JavaScript强化教程——jQuery AJAX 实例
什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 ...
- (Hibernate进阶)Hibernate搭建开发环境+简单实例(二)
hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和 ...
随机推荐
- Android内存性能优化(内部资料总结) 转
刚入门的童鞋肯能都会有一个疑问,Java不是有虚拟机了么,内存会自动化管理,我们就不必要手动的释放资源了,反正系统会给我们完成.其实Java中没有指针的概念,但是指针的使用方式依然存在,一味的依赖系统 ...
- 4-20ma电流信号转0-5v()
源:4-20ma电流信号转0-5v 电压转电流电路原理图(0-5V转4-20mA) 4mA-20mA转0-5v电路问题,LM324一直输出10V
- FusionCharts使用问题及解决方法(三)-FusionCharts常见问题大全
前两篇文章中,我们总结了FusionCharts图表的一些常见问题(FAQ)及解决方法,本文继续讨论FusionCharts使用者常见的一些复杂的报错及解决方法. 当HTML.SWF和JavaScri ...
- They Are Everywhere
They Are Everywhere Sergei B., the young coach of Pokemons, has found the big house which consists o ...
- OpenGL学习--------颜色的选择
OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式.无论哪种颜色模式,计算机都必须为每一个像素保存一些数据.不同的是,RGBA模式中,数据直接就代表了颜色:而颜色索引模式中,数据代表的是 ...
- vim 配置快捷以使复制可用
"设置快捷以使用xshell的复制 let g_copy_mode = function! CopyToggle() let g:g_copy_mode = set mouse=c set ...
- JAVA基础--日期处理
用SimpleDateFormat方法格式化日期格式: package DAO; import java.sql.Connection; import java.sql.DriverManager; ...
- x86_64是什么意思
x86指的是32位计算机的架构,也指32位的操作系统,比如i386,i686,i486等:x86_64和x64指的都是64位架构,也指64位操作系统
- pager-taglib插件进行普通分页
基于Spring+ibatis+Struts+pager-taglib分页技术 pager-taglib是一款支持多种风格的分页显示. 先简单介绍一下Pager-taglib.实际上, ...
- lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析
目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实现的负载均衡的作用,keepalived和heartbeat都是提高高可用性的,避免单点故障.那么他们为什么这么搭配,而又有什么 ...