如何在PHP中显示每行的数量

时间:2016-05-30 07:19:11

标签: php mysql

我有问题显示每行的数量。我正在显示LIMIT最多20 rows的表格。我可以在while loop中显示数字,但是当用户点击下一行时,它会将数字显示回1.我如何将其显示为继续数字示例1-20, 21-40, etc?以下是我的代码:

<?php    
//SQL AND LIMIT codes here
$x = '1';
if(mysqli_num_rows($result) > 0){
    while($row=mysqli_fetch_assoc($result)){
        $pr_id=$row['pr_id'];
?>
        <tr>
         <td align="center"><?php echo $x; //display the number ?></td> 
         <td><?php echo html_entity_decode($row['title']); ?></td>
         <td align="center"><?php echo date("d/m/y",strtotime($row['submit_date'])); ?></td>
         <td><?php echo $row['purchase_type']; ?></td>
        </tr>
<?php
    $x++;
    } 
} 
    mysqli_free_result($result);
    mysqli_close($conn);

echo '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next</a>';
?>

3 个答案:

答案 0 :(得分:1)

如你所说,$ next是页码:

你可以做一个解决方案:

$x = 1 + (($next -1 ) * 20);

所以... 当$next = 1 (first page) $x = 1 + (0*20) = 1

$next = 2 (second page) $x = 1 + (1*20) = 21

$next = 3 (third page) $x = 1 + (2*20) = 41时 所以...

答案 1 :(得分:1)

你可以在你的SQL查询中使用limit,并使用下面的代码来获取限制。

$start = 1 + ((page number)*20);
$end = $start + 19;

现在您可以在sql查询中设置它

$sql = "select * from  table name where limit".$start.", ".$end;

答案 2 :(得分:0)

试试这个

<?php    
  if(isset($_REQUEST['pn'])){
     $pn = $_REQUEST['pn'];
  } else {
     $pn = '1';
  }
  $x = $pn * 20;  //place your no. of rows instead of 20
  if(mysqli_num_rows($result) > 0){
    while($row=mysqli_fetch_assoc($result)){
      $pr_id=$row['pr_id'];
?>
    <tr>
     <td align="center"><?php echo $x; //display the number ?></td> 
     <td><?php echo html_entity_decode($row['title']); ?></td>
     <td align="center"><?php echo date("d/m/y",strtotime($row['submit_date'])); ?></td>
     <td><?php echo $row['purchase_type']; ?></td>
    </tr>
<?php
  $x++;
  } 
} 
mysqli_free_result($result);
mysqli_close($conn);

echo '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next</a>';
?>