分页,原理就是查询数据库时只取部分数据,当分到下一页的时候,再从余下的部分数据中再取部分数据,直到最后一页时把数据取完。
<?php
//以下是mysql连接方式中的一种
$conn = mysql_connect(‘localhost’,’root’,’’);
mysql_select_db(‘DBname’,$conn); //选择数据库
mysql_query(“set names utf8”,$conn); //设置字符集
$query = “select count(*) from tablename”; //取表中数据总条数
$result = mysql_query($query,$conn);
$count = mysql_fetch_row($result);
$num = $count[0]; //求总数
$pageSize = 4; //设定每页显示多少条内容,这里是4条。
$pageCount = ceil($num/$pageSize); //计算页数。。用总数除以一页的条数,可以得到总页数,用ceil函数向上取整
//通过get方式去页码
$page = $_GET['page'];
//判断页数是否在相应的范围内
$page = $page?$page:1;
$page = ($page>$pageCount)?$pageCount:$page;
$page = ($page<0)?1:$page;
//页数加减
$pagePrev = $page-1; //上一页
$pageNext = $page+1; //下一页
//判断页数加减是否超出相应范围
$pagePrev = ($pagePrev<1)?1:$pagePrev;
$pageNext = ($pageNext>$pageCount)?$pageCount:$pageNext; //计算偏移量,所谓的偏移量就是从数据库的第几行开始取,例如一页4行,第一页是0-3,第二页是4-7,第三页是8-11....可以看到一个规律,页数-1乘以每页行数就可以得到所谓的偏移量。即:
$offset = ($page-1)*$pageSize;
//通过偏移量和每页行数从数据库中取相应的数据
$sql = "select * from tablename limit $offset,$pageSize";
?>
页面中的应用
<a href=”manage.php?page=<?php echo $pagePrev;?>”>上一页</a><a href=”manage.php?page=<?php echo $pageNext;?>”>下一页</a>