本人是新手,麻烦大神们教我怎么用PHP完成查看数据中的分页功能,谢谢

解决方案 »

  1.   

    我看过了PHP100的视频,感觉不是很懂
      

  2.   

    看这个分页,有注释,看不懂就拿下来改着用
    http://www.jb51.net/article/27813.htm
      

  3.   

    分页的核心是控制SQL语句来进行对应数据的精确查找。主要是用SQL的limit来进行限制。常把页面参数以GET方式发送回来,然后主要的两个变量一个是每页显示条数,一个是总记录数。具体的过程就是函数的使用了
      

  4.   

    给个例子,最近也在整这个东西。public static function getuser(CleanRequest &$clean){
        Registry::set('clean',$clean);
    //print_r(Registry::get('clean'));die();
    //print_r(Registry::get());
        $user=$clean->get('user');
    if($user)
    $where.=($where?' and':' where').' admin_name like \'%'.$user.'%\'';
    $db=new MysqlDB();
    $sql1="select * from admin";
    $result=$db->query($sql1);
    $count=$db->num_rows($result);
    $pagesize=5;
         if($page=$clean->get('page')){
                $page = intval($page);
            }
            else {
                $page=1;
            }
       $pagecount=ceil($count/$pagesize);
       $limit=$page-1;
            //if($where)
    $sql="select * from admin ".$where." limit ".$limit*$pagesize.",$pagesize";
    $r=$db->select($sql);
    foreach($r as $v){
    $html.='<tr><td>'.$v['admin_id'].'</td><td>'.$v['admin_name'].'</td><td>'.$v['admin_pwd'].'</td><td><a href="javascript:void(0)" class="del">删除</a></td></tr>';
    }
    /*for($i=1;$i<=$pagecount;$i++){//数字分页
    if($i!=$page)
    $html.="&nbsp;<a href='/?r=User&index&page=".$i."'>$i</a>";
    else
    $html.="&nbsp;".$i;*/
      //}
    if($count>$pagesize){
            /*if($page==1){//如果页数只有一页
                $html .= '首页|上一页';
             }*/
             //else{
     $html.='<tr><td colspan="5">';
     if($page>1){
                $html .= '<a href="/?r=User&action=index&page=1">首页</a>|<a href="/?r=User&action=index&page='.($page-1).'">上一页</a>|';
            }
             if($page==$pagecount||$pagecount==0){//如果当前页等于总也数
                $html .= '下一页|尾页';
            }
             else{
                $html .=  '<a href="/?r=User&action=index&page='.($page+1).'">下一 页</a>|<a href="/?r=User&action=index&page='.$pagecount.'">尾页</a>';
            }
    }
    $html.='&nbsp;&nbsp;共'.$count.'条记录&nbsp;每页'.$pagesize.'条&nbsp;共'.$pagecount.'页</td></tr>';
    return $html;
    }
      

  5.   

    5楼给的是很清楚的,用的面向对象的方法,我也给你一个我自己用的
    <?php 
    require_once 'db.php';
    session_start();
    $pagesize = 5;        // 每一页显示多少
    $page = $_GET["page"];if($page == ""){        //如果没有设定页数则默认为1
    $page=1;
    }
    $sql = "select * from st_info order by ID desc limit ".($pagesize*($page-1)).",".$pagesize;$query=mysql_query($sql); //显示从多少到多少
    $quer2=mysql_query("select * from st_info");
    $num=mysql_num_rows($quer2);     //查找所有的行数
    $pagecount=ceil($num/$pagesize); //应该显示多少页
    if($pagecount == 0){
    echo "sorry,it's null";
    }else{
    if(mysql_num_rows($query)==0){
    echo "sorry,";
    }}?> 
    <form name="tiaozhuanform">
    <table width="760" align="center">
    <tr>
    <td>
    总共有<?php echo $pagecount;?>页,
    每页显示<?php echo $pagesize;?>条信息,
    总共有<?php echo $num;?>条数据.
    <select name="theselect" onchange="javascript:tiaozhuan(this.options[this.options.selectedIndex].value);">
    <?php
    for($i=1;$i<=$pagecount;$i++){
    echo '<option value="' . $i . '"' . ($i==$page?' selected':'') . ">$i</option>";
    }

    ?>
    </select>
    <?php
    if($page!=1){
    echo "<a href=info_manager.php?page=1 title=\"第一页\"><<</a>&nbsp;";
    }else{
    echo("<<&nbsp;");
    } for($i=$page-2; $i<=$page+2; $i++){                          //如果页数的前面两页跟后面两页都有,那么一直循环
    if($i<1||$i>$pagecount){                                 //如果页数小于1或者大于总页数了,什么都不显示
    }else{ //如果页数等于当前页或者就等于最后一页,那么就直接显示这一页的内容
    if($i==$page&&$i==$pagecount){
    echo($i);
    }else{
    if($i==$pagecount){
    echo("<a href=info_manager.php?page=".$i.">".$i."</a>");
    }else{
    echo("<a href=info_manager.php?page=".$i.">".$i."&nbsp;</a>");
    }
    }
    }
    }
    if($page!=$pagecount){ //如果页数不等于最后一页,那么显示最后一页的链接,如果不是,那么直显示两个箭头
    echo("&nbsp;<a href=index.php?page=".$pagecount." title=\"最后一页\">>></a>&nbsp;");
    }else{
    echo("&nbsp;>>");
    }
    ?>
    &nbsp;请输入页数:<input type=text size=4 name="yeshu">&nbsp;
    <input type=button value=go onclick=javascript:{tiaozhuan(document.forms.tiaozhuanform.yeshu.value)}>
    </td>
    </tr>
    </table>
    </form>