2013-07-10 44 views
0

以下代碼段是我在搜索結果中用於分頁的內容。在生成搜索結果後,我的代碼將按照以下格式顯示結果:「START PREVIOUS 1 2 3 4 5 6 7 8 9 10 NEXT」。我只想要分頁的指針不要出現10個元素。例如,如果搜索結果產生11個頁面,那麼如果我按10來查看第10頁,則我的分頁格式就是這樣的「START PREVIOUS 2 3 4 5 6 7 8 9 10 11 NEXT」(您從第2頁開始)。我已經嘗試了一些從stackoverflow的例子,但沒有爲我工作。 這是我的代碼:將分頁應用於搜索結果,每次限制10頁

<?php 

    $prev = $page - 1; 
    $next = $page + 1; 

    if($prev > 1) 
    echo"<a href='?value=$value'>Start</a> "; 

    if($prev > 0) 
    echo"<a href='?value=$value&page=$prev'>previous</a> "; 


    $number=1; 
    for($number; $number<=$num_pages; $number +=1) 
    { 


     if($page==$number) 
     echo"<b> [$number] </b>"; 

     else 
     echo"<a href='?value=$value&page=$number'> $number </a>"; 



    } 



    if($page < ceil($num_rows/$per_page)) 
    echo"<a href='?value=$value&page=$next'>next</a> "; 
+0

你的問題是什麼?你碰巧知道減法? –

+0

如果搜索結果中有10頁以上,可以說15,那麼我會得到「START PREVIOUS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 NEXT」。我不想那樣。我想在這種情況下「START PREVIOUS 1 2 3 4 5 6 7 8 9 10 NEXT」,並且當用戶按下頁面10以獲得「START PREVIOUS 2 3 4 5 6 7 8 9 10 11 NEXT」等unitl得到「START PREVIOUS 5 6 7 8 9 10 11 12 13 14 15 NEXT」。每次必須顯示10個元素。任何想法如何做到這一點? – user2491321

+0

你碰巧知道減法?說,你能從15中減去10嗎? –

回答

0

而不是從1開始編號讓它開始於$頁面,並將其限制在10或直到達到最大。

$prev = $page - 1; 
$next = $page + 1; 

if($prev > 1) 
echo"<a href='?value=$value'>Start</a> "; 

if($prev > 0) 
echo"<a href='?value=$value&page=$prev'>previous</a> "; 

for($number = 0; $number < 10 && ($number + $page) < $num_pages; $number +=1) 
{ 


    if($number = 1) 
    echo"<b> [$page] </b>"; 

    else 
    echo"<a href='?value=$value&page=" . ($number + $page) . "'> " . ($number + $page) . " </a>"; 



} 



if($page < ceil($num_rows/$per_page)) 
echo"<a href='?value=$value&page=$next'>next</a> "; 

通過這種方式,除非沒有更多頁面,否則將始終選擇頁面+10。

實例(如果只有12頁)

1...10 2...11 3...12 4...12 5...12

話雖這麼說,這是在我看來,這樣做的一個可怕的方式。有許多偉大的PHP庫/類可以更好地實現它,並使其成爲「通用」,因此您無需爲每個有分頁的頁面進行編碼。