0

ページネーション機能を作成しましたが、「前へ」ボタンと「次へ」ボタンを追加するのに苦労しています。ヘルプやガイダンスをいただければ幸いです。オンラインで調べましたが、これまでのところエレガントなソリューションを思いつくことができませんでした。

$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';
}
4

2 に答える 2

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>";
于 2012-11-29T20:55:36.233 に答える
0

こんな感じ?

<a href="index.php?page=<?php echo ($_GET['page'] + 1); ?>">Next</a>
于 2012-11-29T20:50:55.037 に答える