首页 > 代码库 > php分页笔记
php分页笔记
这是一句很简单的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=http://www.mamicode.com/?pageno=1>首页";
if($pageno==1){
echo "<a href=http://www.mamicode.com/?pageno=1>上一页";
}
else{
echo "<a href=http://www.mamicode.com/?pageno=".($pageno-1).">上一页</a>";
}
/*利用for循环,显示1 2 3···进行跳转*/
for($i=1;$i<=$pagetotal;$i++){
$show=($i!=$pageno)?"<a href=http://www.mamicode.com/‘show.php?pageno=".$i."‘>$i</a>":"<b>$i</b>";
echo "$show";
}
if($pageno == $pagetotal){
echo "<a href=http://www.mamicode.com/?pageno=".$pagetotal.">下一页</a>";
}
else{
echo "<a href=http://www.mamicode.com/?pageno=".($pageno+1).">下一页</a>";
}
echo "<a href=http://www.mamicode.com/?pageno=".$pagetotal.">末页</a>";
?>