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 adb shell 命令大全
1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): androi ...
- emacs format
格式化源码是很常见的需求,emacs有个indent-region函数用于格式化选定的代码,前提是你处在某个非text mode下,如c-mode或者java-mode之类.如果要格式化整个文件,你需 ...
- Android的Activity跳转动画各种效果整理
Android的Activity跳转就是很生硬的切换界面.其实Android的Activity跳转可以设置各种动画,本文整理了一些,还有很多动画效果,就要靠我们发挥自己的想象力 大家使用Android ...
- sql查询技巧,按时间分段进行分组,每半小时一组统计组内记录数量
今天拿到一个查询需求,需要统计某一天各个时间段内的记录数量. 具体是统计某天9:00至22:00时间段,每半小时内订单的数量,最后形成的数据形式如下: 时间段 订单数 9:00~9: ...
- POJ 2296 Map Labeler
二分答案 + 2-SAT验证,判断正方形是否相交写起来有点烦,思路还是挺简单的. #include<cstdio> #include<cstring> #include< ...
- Ubuntu下 Astah professional 6.9 安装
一,下载astah-professional_6.9.0.b4c6e9-0_all.deb 地址:http://members.change-vision.com/files/astah_profes ...
- IMapControl3 Interface(1) Properties属性
IMapControl3 Interface Provides access to members that control the MapControl. Note: the IMapControl ...
- ural1521 War Games 2
War Games 2 Time limit: 1.0 secondMemory limit: 64 MB Background During the latest war games (this s ...
- Android学习笔记之Broadcast Receiver
可程序间通信 注册通信,注销通信,发送消息 package com.jiahemeikang.helloandroid; import com.jiahemikang.service.EchoServ ...
- POJ 3186 Treats for the Cows
简单DP dp[i][j]表示的是i到j这段区间获得的a[i]*(j-i)+... ...+a[j-1]*(n-1)+a[j]*n最大值 那么[i,j]这个区间的最大值肯定是由[i+1,j]与[i,j ...