您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 网站教程 > PHP教程 >
    php简单分页教程
    时间:2016-04-10 20:27 来源:12图资源库 作者:12too.com 浏览:收藏 挑错 推荐 打印
    在我们开发后台程序的时候很多情况下都接触到翻页这个功能,因为数据库内容太多了,如果把数据库中数据全部加载到一个页面的话可想而知网站打开速度是何等之慢,我们无论是用百度搜东西还是看图片都涉及到了翻页了,可见翻页在web程序中应用的非常之多,那么他的原理是什么我们就来通过代码来了解下翻页吧。

    <?php
    /*
    * Created on 2010-4-17
    *
    * Order by Kove Wong
    */
    $link=mysql_connect('http://www.phpx.info','root','phpx.info');
    mysql_select_db('pagelist');
    mysql_query('set names gbk');

    $Page_size=10;

    $result=mysql_query('select * from v_char');
    $count = mysql_num_rows($result);
    $page_count  = ceil($count/$Page_size);


    $init=1;
    $page_len=7;
    $max_p=$page_count;
    $pages=$page_count;

    //判断当前页码
    if(empty($_GET['page'])||$_GET['page']<0){
    $page=1;
    }else {
    $page=$_GET['page'];
     }

    $offset=$Page_size*($page-1);
    $sql="select * from v_char limit $offset,$Page_size";
    $result=mysql_query($sql,$link);
    while ($row=mysql_fetch_array($result)) {
     ?>
     <tr>
    <td bgcolor="#E0EEE0" height="25px"><div align="center">
      <?php echo $row['id']?>
    </div></td>
    <td bgcolor="#E0EEE"><div align="center">
      <?php echo $row['name']?>
    </div></td>
     </tr>

     <?php
     }

     

    $page_len = ($page_len%2)?$page_len:$pagelen+1;//页码个数
    $pageoffset = ($page_len-1)/2;//页码个数左右偏移量

    $key='<div class="page">';
    $key.="<span>$page/$pages</span>&nbsp;";//第几页,共几页
    if($page!=1){
    $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一页</a> ";//第一页
    $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一页</a>"; //上一页
     }else {
    $key.="第一页 ";//第一页
    $key.="上一页"; //上一页
     }

    if($pages>$page_len){
    //如果当前页小于等于左偏移
    if($page<=$pageoffset){
    $init=1;
    $max_p = $page_len;
    }else{//如果当前页大于左偏移
    //如果当前页码右偏移超出最大分页数
    if($page+$pageoffset>=$pages+1){
    $init = $pages-$page_len+1;
    }else{
    //左右偏移都存在时的计算
    $init = $page-$pageoffset;
    $max_p = $page+$pageoffset;
    }
    }
    }
    for($i=$init;$i<=$max_p;$i++){
    if($i==$page){
    $key.=' <span>'.$i.'</span>';
    } else {
    $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>";
    }
    }

    if($page!=$pages){
    $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页</a> ";//下一页
    $key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一页</a>"; //最后一页
    }else {
    $key.="下一页 ";//下一页
    $key.="最后一页";//最后一页
    }
    $key.='</div>';
    ?>


    这里把翻页的重点和原理讲讲,翻页的原理很简单,就是通过select * from sql语句来实现翻页的,还记得select * from 语句的用法吗?不记得没关系我在讲讲 select * from 查询sql语句具体格式select * from  表名字 limit 显示第几页 /共多少页,了解了这个语句我们就来看实现翻页的原理。 首先就是连接数据库了这个前面文章说过了,连接完就来执行sql语句了 我们先设置变量来存放一页显示几条 然后查询数据空共多少页  然后 判断get数值有没有如果没有就赋值为1 否则 sql语句会出错。那么你会问了get从哪里来的? 别着急后面会讲。然后输出本页的内容 最后我们就来设置分页的重要部分了。 设置 上一页和下一页两个连接 上一页的数据就把get数据-1下一页就把get数据+1 如果是首页上一页不显示或者不设置连接 尾页也是如此!! (责任编辑:admin)