首页 > php代码 > php分页函数应用及实现原理详解

php分页函数应用及实现原理详解

一篇关于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

转载随意,但请附上文章地址:-)

标签:select 分页

相关文章

发表留言