表格在while循环中编号

时间:2014-01-06 07:15:53

标签: php pagination

我有使用php的分页页面。我在表格中添加$i以在我的表格中编号。我将每页的记录设置为10.问题是,当我单击下一个或第2页时,我的while循环中的数字又回到了1-10。我怎样才能继续编号?

我有166条记录。记录应显示1-10页1和11-20页2,依此类推。

<?php
  echo'<table>
         <tr>
           <td></td>
         </tr> ';
  $i = 1;
  while($row = $result1->fetch_assoc()) {
    echo'<tr>
           <td>'.$i++.'</td>
         </tr>';
  }
  echo'</table>';
?>

这是我的分页的一些细节

$id = $mysqli->real_escape_string($_GET["q"]);
$id2 = $mysqli->real_escape_string($_GET["id"]);
if (isset($_GET['id'])) { 
    $id2 = preg_replace('#[^0-9]#i', '', $_GET['id']); 
} else { 
    $id2 = 1;
} 
$itemsPerPage = 10; 
$lastPage = ceil($nr / $itemsPerPage);
if ($id2 < 1) { 
    $id2 = 1; 
} else if ($id2 > $lastPage) { 
    $id2 = $lastPage; 
} 

4 个答案:

答案 0 :(得分:1)

您需要添加页码,将$_GET['page']替换为您的approprite。假设yourpage.php?page=2

if(isset($_GET['page'])){
    $i = (($_GET['page']-1) * 10)+1; // You current page number x No.of records + 1 // 2page * 10 reocrds per page + 1 = 21;
}else{
  $i = 1;
}

答案 1 :(得分:1)

$i值与页码。

$i = $page_no * $page_size + 1;

答案 2 :(得分:0)

$i = 1;之前移除while并将其放入循环

while($row = $result1->fetch_assoc())
{
  echo'<tr>
  <td>'.$i++.'</td> /* increment i here will be hust fine */
  </tr>';
}

这样,每当你的循环运行时,i将被迭代以完全调用它应该的计数!!

答案 3 :(得分:0)

您可以简单地将页码和页面大小相乘并添加当前的数字

$totalpagerows = 10;    
    if($_GET['page']!=""){
      if($_GET['page']>1){
         $pagenew =$_GET['page']-1;
      }
      else{
          pagenew =1;
      }

        $i = ($pagenew  * $totalpagerows )+1;     
    }else{
      $i = 1;
    }