php数据分页显示基础
一:分页原理:
所谓分页显示,也就是将数据库中的结果集认为的分成一段一段的来显示,需要两个初始的参数:
每页多少条记录 ($PageSize)?
当前是第几页($CurrentPageID)?
还有其他的一些参数
比如:上一页($NextPageId)、总页数($numPages)等,都可以根据前边的得到。
以MYsql为例:如果要从表内截取某段内容,sql语句可以为:select * from table limit offset ,rows.
前十条记录:select * from table limit 0,10
前11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
这些sql语句其实就是$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:
select * from table limit ($CurrentPageID-1)*$PageSize,$PageSize
剩下的就是构造合适的php语句从数据库内获取数据并显示了。
例:1:链接数据库
$conn =mysql_connet('localhost','root','1234abcd') or die(‘链接数据库错误’.mysql_error());
2:选择数据库
mysql_query('set names utf8');
4:发送sql语句得到结果进行处理
4.1分页【分页要发出两个sql语句,一个获得$rowCount,一个是通过sql的limit获得分页结果。所以我们会获得两个结果集。
分页(获取四个值,两个sql语句)
$pageSize=3;//每页显示多少条记录
$rowCount=0;//共有多少条记录
$pageNow=1;//希望显示第几页
$pageCount=0;//一共有多少页【分页共有这个四个指标,缺一不可。由于$rowCount可以从服务器获得,所以可以给予初始值为0;
$pageNow希望显示第几页,这里最好是设置为0;$pageSize是每页显示多少条记录,这里根据网站需求提前制定。
$pageCount=ceil($rowCount/$pageSize),既然$rowCount可以初始值为0,那么$pageCount当然也就可以设置为0.四个指标,两个0,一个1,另一个为网站需求。】
//4.15根据分页链接来修改$pageNow的值
if(!empty($_GET['pageNow'])){
$pageNow=$_GET['pageNow'];[根据分页链接来修改$pageNow的值。'];}
$sql='select count(id) from emp';
$res1=mysql_query($sql);
//4.11取出行数
if($row=mysql_fetch_row($res1)){
$rowCount=$row[0];
}//[取得$rwoCount,然后就知道$pageCount这两个指标了。]
//4.13计算共有多少页
$sql="select * from emp limit $pageStart,$pageSize";//[根据$sql语句的limit 后面的两个值(起始值,每页条数),来实现分页。以及求得这两个值。]
$res2=mysql_query($sql,$conn) or die('无法获取结果集'.mysql_error());
echo '<table border=1>';[ echo "<table border='1px' cellspacing='0px' bordercolor='red' width='600px'>";]
"<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>salary</th><th><a href='#'>删除用户</a></th><th><a href='#'>修改用户</a></th></tr>"; while($row=mysql_fetch_assoc($res2)){
echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['grade']}</td><td>{$row['email']}</td><td>{$row['salary']}</td><td><a href='#'>删除用户</a></td><td><a href='#'>修改用户</a></td></tr>"; }
echo '</table>';
//4.14打印出页码的超链接
for($i=1;$i<=$pageCount;$i++){
echo "<a href='?pageNow=$i'>$i</a> ";//[打印出页码的超链接]
}
//5.释放资源,关闭连接
mysql_free_result($res2);
mysql_close($conn);
】。
php数据分页显示基础的更多相关文章
- Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容
>>点击这里下载完整html源码<< 截图如下: 滚动鼠标中键读取Json数据分页显示网页内容,关键的Javascript如下: <script type="t ...
- PHP实现数据分页显示
分页在后台管理中是经常使用的功能,分页显示方便大量数据的管理. 实例代码如下: <!DOCTYPE html> <html> <head> <meta cha ...
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)
为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己的优点和缺点.如果需要对数据进行操作,如果数据量不大的情况下,DataList和Gr ...
- php分页例子实现读取mysql数据分页显示
以下代码是PHP分页案例,测试通过,主要是PHP+mysql实现分页,代码来处百度空间,有兴趣看的话可以了解一下PHP是如何分页的? <?php $link = mysql_connect(&q ...
- 11_MySQL如何让数据分页显示
-- 数据分页 SELECT empno,sal FROM t_emp LIMIT 5;
- MVC数据库数据分页显示
首先从数据库获取数据 using System; using System.Collections.Generic; using System.Linq; using System.Web; usin ...
- ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
使用ListView控件进行修改,删除与添加操作1.页面代码: <asp:ListView ID="lv2" runat="server" onpagep ...
- 解决springboot+vue+mybatis中,将后台数据分页显示在前台,并且根据页码自动跳转对应页码信息
文章目录 先看效果 1.要考虑的问题,对数据进行分页查询 2.前端和后台的交互 先看效果 1.要考虑的问题,对数据进行分页查询 mapper文件这样写 从每次开始查询的位置,到每页展示的条数, < ...
- php按条件查询的数据分页显示,点击下一页时又列出全部数据的解决办法
其实很简单,只要把表单提交方式改为get方式就行了,然后调用分页函数: function getpage(&$m,$where,$pagesize=10){ $m1=clone $m;//浅复 ...
随机推荐
- 关于JavaScript日期类型处理的总结
在任何一门开发语言中,对日期时间类型的处理,必不可少也非常重要,长期以来对于JS的日期类型处理较为苍白.在这里做一个浅显的总结. Date 对象用于处理日期和时间.Date 对象用于处理日期和时间.D ...
- 限定textbox中只能输入数字的小方法
在textbox中加入onkeyup="this.value=this.value.replace(/\D/g,' ')"即可实现这一功能 验证数字的正则表达式:^[0-9]*$或 ...
- javascript方法的方法名慎用close
通常我们在定义了与window同名的方法时,会自动覆盖掉window同名的方法.close()方法也不例外.示例: <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- windows消息简单应用实例
//基本定义 internal class MyMessager : IMessageFilter { public bool PreFilterMessage(ref Message m) { // ...
- C++函数重载和函数模板(04)
函数重载 函数重载可以使一个函数名具有多种功能,即具有“多种形态”,这种特性称为多态性. C++的多态性又被直观地称为“一个名字,多个函数”.源代码只指明函数调用,而不说明具体调用哪个函数.编译器的这 ...
- 点击下拉,其余不动的jquery事件(转)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- winfrom窗体加载控制台程序,可以自定义输出语句颜色
winfrom窗体加载控制台程序,可以自定方输出语句颜色,如下图所示 怎么实现的此功能,网上有大把的方法,我这里已经把方法打包成了一个类,只需要引用调用就可以使用了,写的比较粗糙,如有发现需要改进的地 ...
- VS2012环境下C#调用C++生成的DLL
1.VS2012 C++生成DLL 这个过程仿照http://www.cnblogs.com/LCCRNblog/p/3625200.html创建DLL即可,暂时不用创建测试工程,因为下面有测试工程的 ...
- Stars(二维树状数组)
Stars Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/65536 K (Java/Others) Total Submiss ...
- Akka(35): Http:Server side streaming
在前面几篇讨论里我们都提到过:Akka-http是一项系统集成工具库.它是以数据交换的形式进行系统集成的.所以,Akka-http的核心功能应该是数据交换的实现了:应该能通过某种公开的数据格式和传输标 ...