在做留言板的时候,用到了分页,所以写了这个分页笔记
 
既然已经开始写分页了,肯定掌握了了php的一些知识以及mysql的基本操作
 
在做分页的时候,我也遇到了很多问题,但是大家不要怕,无论什么问题总会有解决的办法的
 
首先我们应该对数据进行处理,如果有10条,或100条数据或许你不会感觉到有什么,
 
但是如果有1000条数据在一个页面上,你肯定会看的不耐烦,现在我们设置每个页面显示10条,就是分成100页。
 
相应的数据库操作:
 
Select * from table limit 0,10

这是一句很简单的mysql查询语句,它的作用是从一个名叫table的表里提取10条数据,并且把所有字段的值都获得。

这里的关键是在“limit 0,10”,表示的是以0为起点,查询后面的10条数据

如果要显示id=11到id=20的数据怎么进行操作呢?

Select * from table limit 10,10

想显示其他的数据只需把第一个参数的值修改就行了

怎样获取$page的值?推荐使用$page    = $_GET['page']; 即可获取页面的值

具体操作详见代码:

<?php

/*连接数据库操作*/

$conn = mysql_connect("localhost","root","") or die ("链接服务器错误".mysql_error());
mysql_select_db("db_book",$conn) or die ("链接数据库错误!");

/*分页原理*/

$sql1 = "select * from db_liuyan";    //查询表明为db_liuyan的所有数据

$result = mysql_query($sql1);

$number = mysql_num_rows($result); //获取表中的总记录条数

$pagesize = 10; //每页显示10条记录

/*怎样获取共有多少页?使用ceil函数,相除如果有余数,会自动进1,意思就是如果有26条数据,每页显示10条,则会计算出3页*/

$pagetotal = ceil($number/$pagesize); //计算共有多少页

$pageno = $_GET['pageno']; // $pageno 表示显示页面显示的页数

$start = $pagesize*($page-1);          //计算显示页从哪条记录开始,如果$page为1,则从id=0的记录开始,如果为2则从id=10的记录开始
$sql2 = "select * from `db_liuyan` order by `id` asc limit $startno,$pagesize";  

//在这里要注意的是,查询的时候要注意要按照顺序进行排序,asc 按照正序  desc按照倒序排列
$result2 = mysql_query($sql2);

/*在做分页的时候i,出现了一些问题,如果只有一页记录,点击上一页或者下一页的时候,就会继续跳转到下一页,但是我只有一页的记录啊,

我就利用了if~else解决了这个问题*/

 /*如果$page为空,则把1赋值给$page*/

if($page==""){
  $pageno = 1;
}
  echo "<a href=?pageno=1>首页</a>";

if($pageno==1){
  echo "<a href=?pageno=1>上一页</a>";
}
else{
  echo "<a href=?pageno=".($pageno-1).">上一页</a>";
}

/*利用for循环,显示1 2 3···进行跳转*/
for($i=1;$i<=$pagetotal;$i++){
  $show=($i!=$pageno)?"<a href='show.php?pageno=".$i."'>$i</a>":"<b>$i</b>";
echo "$show";
}

if($pageno == $pagetotal){
  echo "<a href=?pageno=".$pagetotal.">下一页</a>";
}
else{
  echo "<a href=?pageno=".($pageno+1).">下一页</a>";
}
  echo "<a href=?pageno=".$pagetotal.">末页</a>";

?>

 

最新文章

  1. Android安全开发之安全使用HTTPS
  2. Swift开发第二篇——extension及fatalError
  3. Array.sort()方法
  4. InstallShield 2012 Spring优惠升级到最新版本(2015.4.30之前)
  5. BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA
  6. javaScript模块化规范ADM与CMD
  7. HDU 1069 Monkey and Banana(二维偏序LIS的应用)
  8. DPDK多核多线程机制简析
  9. PF防火墙
  10. [Javascript] MetaProgramming: new.target
  11. Android规范发展
  12. [基础]RHEL6下LINUX服务器批量部署
  13. WKWebView与Js交互
  14. Day3 Pyhon的六大数据类型
  15. 多线程编程学习笔记——编写一个异步的HTTP服务器和客户端
  16. JS获得一个对象的所有属性和方法
  17. hash详解
  18. IIS服务器如何抗住高并发的客户端访问
  19. PHPStorm中对nodejs项目进行单元测试
  20. 2019清明期间qbxt培训qwq

热门文章

  1. 安装、配置JDK的步骤
  2. Atom实例
  3. Oracle—用户管理的完全恢复(一)
  4. 安装J2EE的SDK报错:could not find the required version of the Java(TM)2 Runtime Environment in &#39;(null)&#39;的解决办法。
  5. java并发 使用ScheduledExecutor的温室控制器--thinking in java 21.7.5
  6. CardsTube/YouTubePlaylist
  7. leetcode每日解题思路 221 Maximal Square
  8. HDU2076
  9. jquery的效果地址
  10. Ubuntu14.04 固定IP