我有问题显示每行的数量。我正在显示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>';
?>
答案 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>';
?>