本页主题: 在初学习php时,感觉这个php的分页比较不好理解和掌握 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

yjk201003
级别: 新手上路


精华: 1
发帖: 2
威望: 4 点
金钱: 40 RMB
注册时间:2010-03-17
最后登录:2010-03-17

 在初学习php时,感觉这个php的分页比较不好理解和掌握

管理提醒:
本帖被 zhongyaywt 设置为精华(2010-03-17)
在初学习php时,感觉这个php分页比较不好理解和掌握,能给分析分析吗?
能把PHP分页代码写出来吗?
搜索更多相关文章:PHP分页
我一定要好好学习PHP
顶端 Posted: 2010-03-17 11:34 | [楼 主]
zhongyaywt
级别: 论坛版主


精华: 26
发帖: 976
威望: 1028 点
金钱: 8080 RMB
注册时间:2008-08-31
最后登录:2010-09-08

 

PHP分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:1、每页多少条记录($PageSize),2、当前是第几页($Page)。

现在只要再给我一个结果集,我就可以显示某段特定的结果出来。至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10

这一组sql语句其实就是当$PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:select * from table limit ($page - 1) * $PageSize, $PageSize

PHP颁布代码如下:
Copy code
<?php
header("Content-Type:text/html; charset=gb2312");
//连接数据库

@$conn=mysql_connect('localhost','root','123456') or die("数据库服务器连接失败");
mysql_query("set names gb2312");
mysql_select_db("201003info",$conn) or die("数据库连接失败");

//取出结果构成数组
$sql="select inid,iname as '姓名',if(igender,'男','女') as '性别',itel as '电话' ,iaddress as '地址' from infotion order by inid desc";

//设置每页记录数
$pagesize=2;

$page=intval($_GET["page"]);//页码数
if($page<=1) $page=1;

//计算总页数 以保证有效性
$result=mysql_query($sql) or die($sql."有错误");
$totalrow=mysql_num_rows($result) or die("没有数据");
$totalpage=ceil($totalrow/$pagesize);

if($page>=$totalpage) $page=$totalpage;

//起始位置
$startrow=($page-1)*$pagesize;

$sql.=" limit $startrow,$pagesize";

$result=mysql_query($sql) or die($sql."有错误");
$tmparr=array();
while($row=mysql_fetch_assoc($result))  $tmparr[]=$row;
if(empty($tmparr)){echo "没有数据";exit;}

//输出表格
echo "<table border=\"1\">";
//表头
echo "<tr>";
foreach($tmparr[0] as $key => $val){
    echo "<td>".$key."</td>";
}
echo "</tr>";
//表体
foreach($tmparr as $val){
    echo "<tr>";
    foreach($val as $value){
        echo "<td>".$value."</td>";
    }
    echo "</tr>";
}
echo "</table>";


//分页控制
$url=$_SERVER['PHP_SELF']."?page=";
$url="<a href=\"$url";//"<a href=\"index.php?page=
// $url="<a href=\"index.php?page=1\">首页</a>"

if($page==1) echo "首页|上页";
else echo  $url."1\">首页</a>|".$url.($page-1)."\">上页</a>";
echo "|";
if($page==$totalpage) echo "下页|末页";
else echo $url.($page+1)."\">下页</a>|".$url.$totalpage."\">末页</a>";
echo " 共".$totalpage."页当前第".$page."页";

?>



php分页的代码下载: phppage.rar
天道酬勤
顶端 Posted: 2010-03-17 11:42 | 1 楼
zhongyaywt
级别: 论坛版主


精华: 26
发帖: 976
威望: 1028 点
金钱: 8080 RMB
注册时间:2008-08-31
最后登录:2010-09-08

 

php学习一定要多加练习,细心体会其中写法。
天道酬勤
顶端 Posted: 2010-03-17 11:44 | 2 楼
yjk201003
级别: 新手上路


精华: 1
发帖: 2
威望: 4 点
金钱: 40 RMB
注册时间:2010-03-17
最后登录:2010-03-17

 

多谢

我来试一试
我一定要好好学习PHP
顶端 Posted: 2010-03-17 11:52 | 3 楼
357982664
级别: 在校学生


精华: 0
发帖: 8
威望: 8 点
金钱: 80 RMB
注册时间:2010-04-13
最后登录:2010-09-06

 

顶端 Posted: 2010-04-13 14:33 | 4 楼
帖子浏览记录 版块浏览记录
北京php培训 » 计算机培训知识咨询专栏

学校地址:北京市东城区东直门外东中街32号楼(东环广场路东侧)

电话:010-51692691 010-64178470 QQ:93946341

北京中亚学校版权©所有  京ICP备05011382