一篇关于php分页函数应用及实现原理详解,有需要的同学可以参考一下。
第13课老师提供的分页函数,我进行了适当的修改,去掉了一些我不太好理解的地方。
只要你好好研究老师的函数,想必很容易就可以判断出我修改的地方。
如果你觉得我修改有什么不当的地方欢迎指证,交流可以促使你我进步!
-变量
1.局部变量
2.全局变量(global,$GLOBALS)
a.在函数外定义的局部变量,只可以在主程序使用,不可在函数内或其他文件使用
b.在函数内定义的局部变量,只可在本函数内使用
c.在函数外定义的局部变量,想要在函数内使用,必须在函数内将变量声明为global

d.在函数内定义的局部变量,想要在函数外使用,必须在函数内将变量声明为global

注意:
1.必须先将变量声明为global,然后才赋值
错误: global $color="red";
正确: global $color;$color="red";
2.必须先声明,再使用
错误:echo $color;global $color;
正确:global $color;echo $color;
f.函数的参数为局部变量,如果想要在外部使用,不能使用global这种方式(因为不符合先声明,再使用的原则)
则使用超全局变量 $GLOBALS(大写,小写有不确定性)

代码如下 |
复制代码 |
<?php //$totle为总条数,$displaypg为每页显示的条数 function PAGEFT($totle, $displaypg = 20) { global $firstcount, $pagenav; $GLOBALS["displaypg"] = $displaypg; //取得当前页数 if($_GET['page']) $page=$_GET['page']; else $page = 1; //取得当前页的地址 $url_arr=parse_url(http://pic3.phprm.com/2011/11/19/$_SERVER["REQUEST_URI"].jpg); $url=$url_arr['path']; $lastpg = ceil($totle / $displaypg); //最后页 $page = min($lastpg, $page); //当前页 $prepg = $page -1; //上一页 $nextpg = ($page == $lastpg ? 0 : $page +1); //下一页 $firstcount = ($page -1) * $displaypg; //开始位置 //开始分页导航条代码: $start=$totle ? ($firstcount +1) : 0; $end=min($firstcount + $displaypg, $totle); if($start!=$end) $pagenav = "显示第 <B>" . $start . "</B>-<B>".$end. "</B> 条记录,共 $totle 条记录"; else $pagenav = "显示第 <B>".$end."</B> 条记录,共 $totle 条记录"; //如果只有一页则跳出函数: if ($lastpg <= 1) return TRUE; $pagenav .= " <a href='$url'>首页</a> "; if ($prepg) $pagenav .= " <a href='?page=$prepg'>前页</a> "; else $pagenav .= " 前页 "; if ($nextpg) $pagenav .= " <a href='?page=$nextpg'>后页</a> "; else $pagenav .= " 后页 "; $pagenav .= " <a href='?page=$lastpg'>尾页</a> "; //下拉跳转列表,循环列出所有页码: $pagenav .= " 到第 <select name='topage' size='1' onchange='window.location="$url?page="+this.value'>n"; for ($i = 1; $i <= $lastpg; $i++) { if ($i == $page) $pagenav .= "<option value='$i' selected>$i</option>n"; else $pagenav .= "<option value='$i'>$i</option>n"; } $pagenav .= "</select> 页,共 $lastpg 页"; } /////////////////////////////////////往下是操作分页函数的部分//////////////////////////////////////////////// include_once('conn.php'); $result=mysql_query("SELECT * FROM `news`"); $total=mysql_num_rows($result); PAGEFT($total,3); //调用分页函数 $result=mysql_query("SELECT * FROM `news` limit $firstcount,$displaypg "); while($row=mysql_fetch_array($result)){ echo "<hr><b>".$row['title']." | ".$row['content']; } echo "<br>".$pagenav; ?> |
本文地址:http://www.phprm.com/code/40718.html
转载随意,但请附上文章地址:-)