在做留言板的时候,用到了分页,所以写了这个分页笔记
 
既然已经开始写分页了,肯定掌握了了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>";

?>

 

04-14 00:01