可能有个别的语句不明白  希望开个帖子  大家给看下  但是可能会分着提出来  有空麻烦大家给说一下
首先就是分页偏移量是什么意思
//计算查询偏移量
$offset = $pagesize*($page-1);
我看了半天  不明白他的作用是什么    

解决方案 »

  1.   

    $offset = $pagesize*($page-1)//$offset在这里代表的是开始条数(从第$offset条开始查询)
      

  2.   

    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数  
    这个页码个数也不明白啊pagelen为什么要%2呢    ?是传值么?   后面再加1 有点晕  我先慢慢消化着··
      

  3.   

    $pagesize//每页显示条数
    $page//当前页数
    如果当前页数是1($page = 1)那么$pagesize * ($page - 1)得多少?结果是0,那么也就是从第一条(mysql的limit是从0开始的,也就是0代表的是第一条)开始查询开始,如果你不$page - 1的话结果就不对了
      

  4.   

    如果这个是为了求总页数的话,那么思路应该是$pagelen = ceil($totalRow / $pagesize);//$totalRow代表的是数据总条数
      

  5.   


    function page($page,$total,$phpfile,$pagesize=3,$pagelen=3){
    $pagecode = '';//定义变量,存放分页生成的HTML
    $page = intval($page);//避免非数字页码
    $total = intval($total);//保证总记录数值类型正确
    if(!$total) return array();//总记录数为零返回空数组
    $pages = ceil($total/$pagesize);//计算总分页
    //处理页码合法性
    if($page<1) $page = 1;
    if($page>$pages) $page = $pages;
    //计算查询偏移量
    $offset = $pagesize*($page-1);
    //页码范围计算
    $init = 1;//起始页码数
    $max = $pages;//结束页码数
    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
    $pageoffset = ($pagelen-1)/2;//页码个数左右偏移量  从第几条开始查询//生成html
    $pagecode='<div class="page">';
    $pagecode.="<span>$page/$pages</span>";//第几页,共几页
    //如果是第一页,则不显示第一页和上一页的连接
    if($page!=1){
    $pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页
    $pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页
    }
    //分页数大于页码个数时可以偏移
    if($pages>$pagelen){
    //如果当前页小于等于左偏移
    if($page<=$pageoffset){
    $init=1;
    $max = $pagelen;
    }else{//如果当前页大于左偏移
    //如果当前页码右偏移超出最大分页数
    if($page+$pageoffset>=$pages+1){
    $init = $pages-$pagelen+1;
    }else{
    //左右偏移都存在时的计算
    $init = $page-$pageoffset;
    $max = $page+$pageoffset;
    }
    }
    }
    //生成html
    for($i=$init;$i<=$max;$i++){
    if($i==$page){
    $pagecode.='<span>'.$i.'</span>';
    } else {
    $pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
    }
    }
    if($page!=$pages){
    $pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
    $pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页
    }
    $pagecode.='</div>';
    return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);
    }
    这是分也得源码  php100找的  我想把他看明白了  然后自己用  
    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数     
    上面这句话不明白他的意思    还有就是紧接着页码个数下面的几个   为什么都要打点再等号   比如:
    $pagecode.="<span>$page/$pages</span>";
    这个点是调用么?不明白啊
      

  6.   

    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1; 
    //对$pagelen进行模2运算(计算$pagelen除以2的余数,结果要么是整除,余数为0,要么无法整除,余数为1)
    //不能整除时$pagelen = $pagelen;整除时$pagelen = $pagelen + 1;
      

  7.   

    #1 
    //计算查询偏移量
    $offset = $pagesize*($page-1);
    当前页开始的第一条记录#3
    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
    翻页导航条显示的页码个数,在这个应用中他将显示奇数个页码
      

  8.   

    $pagecode.="<span>$page/$pages</span>";
    等同于(注:php中 "."代表的是连接字符串)
    $pagecode=$pagecode . "<span>$page/$pages</span>";
      

  9.   

    受不了了   像我7楼给的代码  是不是写成一个类就行了  class page{}
    7楼所出的代码不用改动吧?
    然后就是在html里面加入代码吧?<?php
    $phpfile = 'index.php';//页面文件名
    $page= isset($_GET['page'])?$_GET['page']:1;//默认页码
    $db = mysql_connect('localhost','test','test');//链接数据库
    mysql_select_db('test',$db);//选择数据库
    $counts = mysql_num_rows(mysql_query('select `id` from `test`',$db));//获取需要的数据总条数
    $sql='select `id`,`title` from `test`';//定义查询语句SQL
    $getpageinfo = page($page,$counts,$phpfile);//调用函数,生成分页HTML 和 SQL LIMIT 子句
    $sql.=$getpageinfo['sqllimit'];//组合完整的SQL语句
    $data = $row = array();//初始化数组
    $result = mysql_query($sql,$db);//获取结果集
    //将数据装入$data数组
    while($row = mysql_fetch_array($result)){
    $data[]=$row;
    }
    ?>
    <?php
    echo $getpageinfo['pagecode'];//显示分页的html代码
    ?>
    这段代码  页面文件名只得是什么?是我分页的文件名还是类的文件名?$sql.=$getpageinfo['sqllimit'];这句话组合完整的sqllimit语句是什么意思?根本就不明白  急死我了 
      

  10.   

    如果当前页数是1($page = 1)那么$pagesize * ($page - 1)得多少?结果是0,那么也就是从第一条(mysql的limit是从0开始的,也就是0代表的是第一条)开始查询开始,如果你不$page - 1的话结果就不对了