PHP分页,通过一个公式来执行,首先我们要明白select * from book limit 0,5; select * from book limit 5,5; select * from book limit 10,5;的含义,第一句是从零查找5条信息,第二条是从5开始查找5条信息,第三条就不用多说了。
从以上分析,我们可以总结出来,首先0=(1-1)*5 5=(2-1)*5 10=(3-1)*5 在这里我们要明白1,2,3代表的是什么,还有5代表的是什么就可以了。1,2,3代表的当前页,也就是第一、第二、第三页;5则是我们显示的记录数。得出查询公式:select * from book limit($pageval-1)*$pagesize,$pagesize;
现在的问题转到了怎么获取$page值。这里利用$_GET(page)来获得。
具体步骤:首先确定输出记录数$pagesize=5; 利用$url=$_SREVER["REQUEST_URI"]; 来获取当前的URL;再通过parse_url()解析URL,最后经过取出path的值。这个就是我们要的URL了。
- <?
- include "conn.php";
- include "head.php";
- ?>
- <table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
- <?
- $pagesize=5;
- $url=$_SREVER["REQUEST_URI"];//获取当前的URL
- $url=parse_url($url);//将URL解析成数组
- $url=$url[path];//取得path;
- $numq=mysql_query("select * from `book`");
- $num = mysql_num_rows($numq);//遍历数组
- if($_GET[page]){ //$_GET去取url中的page参数的值,如果取到值了就赋给$pageavl
- $pageval=$_GET[page];
- $page=($pageval-1)*$pagesize;
- $page.=',';
- }
- // if($num > $pagesize){
- // if($pageval<=1)$pageval=1;
- // echo "共 $num 条".
- // "<a href=$url?page=".($pageval-1).">上一页</a> <a href=$url?page=".($pageval+1).">下一页</a>";
- // }
- $sql="select * from book limit $page $pagesize";
- $query=mysql_query($sql);
- while($row=mysql_fetch_array($query)){
- ?>
- <tr bgcolor="#eff3ff">
- <td>标题:<?=$row[title]?> 用户:<?=$row[user]?></td>
- </tr>
- <tr bgColor="#ffffff">
- <td>内容:<?=$row[content]?></td>
- </tr>
- <?
- }
- ?>
- </table>
- <br>
- <?
- //$pagesize=5;
- // $url=$_SREVER["REQUEST_URI"];//获取当前的URL
- // $url=parse_url($url);//将URL解析成数组
- // $url=$url[path];//取得path;
- // $numq=mysql_query("select * from `book`");
- // $num = mysql_num_rows($numq);//遍历数组
- // if($_GET[page]){ //$_GET去取url中的page参数的值,如果取到值了就赋给$pageavl
- // $pageval=$_GET[page];
- // $page=($pageval-1)*$pagesize;
- // $page.=',';
- // }
- if($num > $pagesize){
- if($pageval<=1)
- $pageval=1;
- echo "共 $num 条".
- "<a href=$url?page=".($pageval-1).">上一页</a> <a href=$url?page=".($pageval+1).">下一页</a>";
- }
- ?>
代码如下: