四时宝库

程序员的知识宝库

php分页效果原理,只有懂原理,才如何改别人的源码

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;

 }

?> 

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接