2011-05-24 98 views
0

這是一些php分頁代碼,它可以流暢運行。修改分頁腳本以顯示最多9頁鏈接

 $rst = mysql_query($qry) or die(mysql_error()); 
     $numrows = mysql_num_rows($rst); 
     $qry   .= " limit $starting, $recpage"; 
     $this->result = mysql_query($qry) or die(mysql_error()); 
     $next  = $starting+$recpage; 
     $var  = ((intval($numrows/$recpage))-1)*$recpage; 
     $page_showing = intval($starting/$recpage)+1; 
     $total_page = ceil($numrows/$recpage); 



    $norepeat = 4; 
    $j = 1; 
    for($i=$page_showing; $i>1; $i--){ 
     $fpreviousPage = $i-1; 
     $pagee = ceil($fpreviousPage*$recpage)-$recpage; 
     $anch = "<a href='#' >$fpreviousPage</a>".$anch; 
     if($j == $norepeat) break; 
     $j++; 
    } 
    $anc .= $anch; // last 4 

    $anc .= $page_showing; //current page 

    $j = 1; 
    for($i=$page_showing; $i<$total_page; $i++){ 
     $fnextPage = $i+1; 
     $pagee = ceil($fnextPage*$recpage)-$recpage; 
     $anc .= "<a href='#' >$fnextPage</a>"; // next 4 
     if($j==$norepeat) break; 
     $j++; 
    } 

但它只顯示上一頁和下一頁最多4頁。像

(1) | 2 | 3 | 4 | 5 // (1) as current page 
2 | 3 | 4 | 5 | (6) | 7 | 8 | 9 | 10 // (6) as current page 
12 | 13 | 14 | 15 | (16) // (16) as current page, the last page 

現在,如何修改代碼,以便作出這樣的顯示:

(1) | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 // (1) as current page 
2 | 3 | 4 | 5 | (6) | 7 | 8 | 9 | 10 // (6) as current page 
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | (16) // (16) as current page, the last page 

會有顯示至少9頁分頁。

仍然需要避免,如果總頁數小於9,

(1) | 2 | 3 | 4 | 5 | 6 | 7 // (1) as current page, 7 pages all, show max 7, not 9. 

感謝。

回答

1

$norepeat = 9;

然後

$j = 1; 
    for($i=$page_showing; $i<$total_page; $i++){ 
     $fnextPage = $i+1; 
     $pagee = ceil($fnextPage*$recpage)-$recpage; 
     $anc .= "<a href='#' >$fnextPage</a>"; // next 4 
     if($totalpage>=9){ if($j==$norepeat) break;}else { if($j==$totalpage) break;} 
     $j++; 
    } 
+0

喜@zod,其中添加'如果($總頁數> 9)'?替換'$ norepeat = 4;'? – cj333 2011-05-24 21:01:29

+0

@zod,woo,替換爲'if($ totalpage> = 9){if($ j == $ norepeat)break;} else {if($ j == $ totalpage)break;} $ j ++;'打印出所有頁碼,45頁,而不是9:{ – cj333 2011-05-24 21:09:18

+0

這個$ page_showing = intval($ starting/$ recpage)+1的值是什麼; – zod 2011-05-24 21:12:32