2012-11-29 54 views
0

我已經寫了一個分頁功能,但一直在努力添加'Previous'和'Next'按鈕。任何幫助或指導將非常感激,我有一個在線看,迄今還沒有能夠提出一個優雅的解決方案。上一頁/下一頁10條結果Php分頁

$result = is database query results. 

$per_page = 5; 
if($result->num_rows != 0) 
{ 
    $total_results = $result->num_rows; 
    $total_pages = ceil($total_results/$per_page); 
    if(isset($_GET['page']) && is_numeric($_GET['page'])) 
    { 

    $show_page = $_GET['page']; 

    if ($show_page > 0 && $show_page <= $total_pages) 
    { 
     $start = ($show_page -1) * $per_page; 
     $end = $start + $per_page; 
    } 
else 
{ 
    $start = 0; 
    $end = $per_page; 
} 
else 
{ 
$start = 0; 
$end = $per_page; 
} 

$pag = ''; 

for ($i = $start; $i < $end; $i++) 
{ 
// Make sure PHP doesnt show results that do not exist 
if ($i == $total_results) { break; } 
// Find Specific Row 
$result->data_seek($i); 
$row = $result->fetch_row(); 

// label Rows 
$id = $row[0]; 

    //USE AND DISPLAY RESULTS 

    //Pagination 
    for ($i = 1; $i <= $total_pages; $i++) 
{  
    if($total_pages != 1) 
    { 
     if(isset($_GET['page']) && $_GET['page'] == $i) 
     { 
     $pag .= $i ." "; 
     } 
     else 
     { 
     $pag .= "<a href='index.php?page=$i'>$i</a>"; 
     } 
    } 
    } 
} 
else 
{ 
$pag .= 'no results'; 
} 

回答

2

你已經知道你正在瀏覽的網頁:

$_GET['page'] 

,總頁數:

$total_pages 

所以,你可以用它來獲取下一個和以前。

$page = 1; 
if(isset($_GET['page'])) 
    $page = $_GET['page']; 

$prev = $page - 1; 
if($prev >= 1) 
    $pag = "<a href='index.php?page=$prev'>Prev</a>"; 

for ($i = 1; $i <= $total_pages; $i++) 
{  
    if($total_pages != 1) 
    { 
     if($page == $i) 
     { 
     $pag .= $i ." "; 
     } 
     else 
     { 
     $pag .= "<a href='index.php?page=$i'>$i</a>"; 
     } 
    } 
    } 
} 

$next = $page + 1; 
if($next <= $total_pages) 
    $pag .= "<a href='index.php?page=$next'>Next</a>"; 
+0

謝謝啓,下一個作品,但以前不... – HireLee

+0

對不起,遺漏了=。現在更新。它應該是$ prev> = 1,所以它只會顯示大於1的頁面 –

+0

我注意到一個,但仍然不顯示...此外,如果頁面在index.php上,則必須按下兩個按鈕,以獲得index.php?page = 2以獲得下一組結果。 – HireLee

0

Sorta是什麼樣的?

<a href="index.php?page=<?php echo ($_GET['page'] + 1); ?>">Next</a>