最近开始学习PHP,数据库增删改查完以后,开始做分页。在网上搜了下原理,大致了解了下。现在开始正式做。下面给大家说下分页原理。
分页原理:分页说白了,也就是从数据库中的数据输出到浏览器中,但是呢,不是全部输出,而是输出我们想要输出的行数。当然从数据库中输出一定要用到SQL语句。其中,我们只需要多了解一个关键字 limit 。
limit怎么用呢? select * from 表名 limit 0 ,10 这句话什么意思呢? 0是以0为起点,后面的10即10条数据,那么10为起始页呢,显示到第20条数据。则是 limit 10,10;可不是limit 10,20; 后面的10即是显示的条数。
limit 0,10;从0开始 输出10条数据(0-9)
limit 10,10;从10开始,输出10条数据(10-20)
limit 20,10;从20开始,输出10条数据(20-30)
分页,意味着页码的不同。所以应该是个变量。由上边我们可以总结一个公式
重点内容公式
select * from 表名 limit (第几页-1)*(一页显示条数),一页显示条数
公式需要理解记忆,不需要死记硬背。
说这么多 不如先说下 写代码思路
1,链接数据库
2,选择要显示内容的表
3,获取Page值,这个值我们可以先假定有,用到isset()函数且 _GET[‘page’]判断,当然是这个page值肯定没有,所以我们可以定义为page=1,也就是第一页。
4,定义多少页,每页显示多少条数
5,定义SQL语句(基本上做分页的都会数据库的select 语句,其余的就不多说了)
select * from persons limit (第几页-1)*(一页显示条数),一页显示条数
6,PHP中输出数据库内容语句
7,输出 首页,上一页,下一页,尾页 字样,在这些字上设置超链接,并进行传值。
8,关闭数据库
//你需要修改数据库和表名,代码是我定义的表名和数据库
<?php
//链接数据库
$con=mysql_connect("localhost","root","root");
//选择要操作的数据库
mysql_select_db("mydatabase2",$con);
//获取定义的$page值,有的话 为当前页,没有的话 则为1
$page=isset($_GET['page'])?intval($_GET['page']):1;
//定义多少页 $total 每页显示的条数$num
$sql_select="select * from persons";
echo "<table border='2' >
<tr>
<th>FirstName</th>
<th>LastName</th>
<th>Age</th>
</tr>";
$result=mysql_query($sql_select);
$num=2;
$total=mysql_num_rows($result);
$PG=ceil($total/$num);
$page_exe=($page-1)*$num;//定义变量,定义起始位置
//定义SQL语句 select * from persons limit (第几页-1)*(一页显示条数),一页显示条数
//$sql=""select * from persons ".($page-1)*$num.",".$num";
$result1=mysql_query("select * from persons limit $page_exe ,$num ");
while($row=mysql_fetch_array($result1)){
echo "<tr>";
echo "<td>".$row['FirstName']."</td>";
echo "<td>".$row['LastName']."</td>";
echo "<td>".$row['Age']."</td>";
echo "</tr>";
}
echo "</table>";
$nextPg=$page+1;//下一页,并进行判断页码值是否超过定义的总页数
if($nextPg>=$PG){
$nextPg=$PG;
}
$upPg=$page-1;//上一页,并进行判断是否在正确范围内,若不判断,则Page的值可以超过定义的页数
if($upPg==0){
$upPg=1;
}
//进行传值
echo "<a href='Deom.php?page=1' >首页</a>"." ";
echo "<a href='Deom.php?page=$upPg'>上一页</a>". " " ;
echo "<a href='Deom.php?page=$nextPg'>下一页</a>". " ";
echo "<a href='Deom.php?page=$PG '>尾页</a> "." ";
//关闭数据库
mysql_close($con);
?>
刚学会用博客,语言组织能力有点小差劲,希望不要介意。
人最大的优点就是不断的学习。学习才能进步!