<?php $pageCount = 9;//总页数
$pageNow = 3;//用户输入的页数
$i = 3;//显示的页数
$j = $pageCount/$i; //可以滚动的次数
$arr=array() ;

//控制滚动的次数
for($k=0;$k<$j;$k++) {

//控制翻页
if($pageNow==3*$k) { for($e=($k*3)+1;$e<=3*($k+1);$e++) {

$arr[] = $e;
//echo $e;
}
//echo "</br>";
}else {
//输出当前显示页数
for($a=0;$a<$i;$a++) {
  $arr[$a];

}

}
}?>
帮忙给看下,那里出问题了。

解决方案 »

  1.   

    for($e=($k*3)+1;$e<=3*($k+1);$e++)代表了什么能解释下吗?
    仅供参考:class Centpage{
    var $page; //centpage
    function centPages($pageSize,$sumCount){
    //compute startRow and startPage
    $page = null;
    global $page;
    if (isset ($_GET['page'])) {
    $page = $_GET['page'];
    } else {
    $page = 1;
    }
    $startRow = ($page -1) * $pageSize; //start row //total
    if ($sumCount % $pageSize == 0) {
    $sumPage = floor($sumCount / $pageSize);
    } else {
    $sumPage = floor($sumCount / $pageSize) + 1;
    } $prePage = $page -1; //previous
    $nextPage = $page +1;  //next //get reguest way
    $url = $_SERVER['REQUEST_URI'];
    $urlArray = parse_url($url);
    $url =$urlArray['path']; $arrPages = array("page" => $page,"startRow" => $startRow,"previous" => $prePage,"next" => $nextPage,
    "total" => $sumCount,"sumPage" => $sumPage,"pageSize" => $pageSize,"url" => $url);
    return $arrPages;
    }}
      

  2.   

    $pageCount = 9;//总页数
    $pageNum = 3;//显示的页码数
    $pageNow = $_GET['page'] ? $_GET['page'] : 1;//用户输入的页数$pageStart = floor($pageNow / $pageNum) * $pageNum + 1; //显示的起始页码
    $pageEnd = $pageStart + $pageNum;//显示的终止页码+1for($i=$pageStart; $i<$pageEnd; $i++) {
      echo " [<a href=?page=$i>$i</a>] ";
    }
      

  3.   

    理解楼主意思了,我是这样想的:
    << [1] [2] [3] >>
    当点击">>"后,$page = $page+3,然后跳转回页面的话,就显示:
    << [4] [5] [6] >>
    这样可行否?
      

  4.   


    这需要js 或者jquery才能满足你的滚过来 滚过去了
      

  5.   

    $pageCount = 9;//总页数
    $pageNum = 3;//显示的页码数
    $pageNow = $_GET['page'] ? $_GET['page'] : 1;//用户输入的页数
    if( $pageNow == $pageCount ) $pageNow = 1; //循环滚动,加上这句$pageStart = floor($pageNow / $pageNum) * $pageNum + 1; //显示的起始页码
    $pageEnd = $pageStart + $pageNum;//显示的终止页码+1for($i=$pageStart; $i<$pageEnd; $i++) {
      echo " [<a href=?page=$i>$i</a>] ";
    }
      

  6.   

    我有标准实例:<?php
     // 建立数据库连接 
     $link = mysql_connect("localhost", "mysql_user", "mysql_password") 
       or die("Could not connect: " . mysql_error()); 
     // 获取当前页数
     if( isset($_GET['page']) ){
      $page = intval( $_GET['page'] );
     }
     else{
      $page = 1;
     } 
     // 每页数量
     $PageSize = 10; 
     // 获取总数据量
     $sql = "select count(*) as amount from table";//count(*)的内容保存在amount里
     $result = mysql_query($sql);
     $row = mysql_fetch_row($result);
     $amount = $row['amount']; 
     // 记算总共有多少页
     if( $amount ){
      if( $amount < $page_size ){ $page_count = 1; } //如果总数据量小于$PageSize,那么只有一页
      if( $amount % $page_size ){ //取总数据量除以每页数的余数
       $page_count = (int)($amount / $page_size) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一
      }else{
       $page_count = $amount / $page_size; //如果没有余数,则页数等于总数据量除以每页数的结果
      }
     }
     else{
      $page_count = 0;
     } // 翻页链接
     $page_string = '';
     if( $page == 1 ){
      $page_string .= '第一页|上一页|';
     }
     else{
      $page_string .= '<a href=?page=1>第一页</a>|<a href=?page='.($page-1).'>上一页</a>|';
     } 
     if( ($page == $page_count) || ($page_count == 0) ){
      $page_string .= '下一页|尾页';
     }
     else{
      $page_string .= '<a href=?page='.($page+1).'>下一页</a>|<a href=?page='.$page_count.'>尾页</a>';
     }
     // 获取数据,以二维数组格式返回结果
     if( $amount ){
      $sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";//limit 第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目
      $result = mysql_query($sql);  while ( $row = mysql_fetch_row($result) ){
       $rowset[] = $row;
      }
     }else{
      $rowset = array();
     }
     // 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果
    ?>