PHP+MYSQL分页原理
1、 sql语句中的limit用法
select * from table limit 开始位置(从0开始),操作数
select * from table limit 0,20 --取前20个数据
select * from table limit 10,20 ---取11条到30条数据
2、 学习分页的一种公式
(1) 分页原理
所谓的分页显示,也就是将数据库中的结果集,以一定的条数显示出来。
(2) 如何分段(以10条数据为单位)
前10条记录:
select * from table limit 0,10
第11条到20条:
select * from table limit 10,10
第21条到30条:
select * from table limit 20,10
(3) 得到公式
(当前页数-1)*每页条数,每页条数
select * from table limit($Page-1)*$PageSize,$PageSize;
3、 实例代码
<?php
//分页效果2
include("conn.php");
$server_url=$_SERVER["REQUEST_URI"]; //从浏览器得到URL
$parse_url=parse_url($server_url); //将浏览器得到的URL转换为数组
$url=$parse_url["path"]; //得到url地址字符串
$pagesize=5; //设置分页数目
$sql1="select * from article";
$query1=mysql_query($sql1);
$num=mysql_num_rows($query1); //得到查询的表的所有数据条数
$size=(int)($num/$pagesize)+1; //得到总页数
$pageindex=0;
if(!empty($_GET["page"]))
{
$pageindex=$_GET["page"]; //取得页面索引
}
$pageindex*=5;
$sql2=select($pageindex); //得到分页查询的sql语句
echo $sql2;
$query2=mysql_query($sql2);
while ($data=mysql_fetch_array($query2))
{
echo "<h2>标题:".$data["title"]."</h2> ".$data["date"]."<br /><b>".$data["contents"]."</b><hr />";
}
?>
<form action="list.php" method="get"">
<?php
for($index=0;$index<$size;$index++)
{
echo "<a href=$url?page=".$index.">第".($index+1)."页</a>";
}
?>
</form>
<?php
function select($index)
{
$sqlselect="select * from article limit $index,5";
return $sqlselect;
}
?>