身份证号码不变



我一直在创建一个CMS博客,这是管理员可以访问的页面之一。我正在尝试在其中实现分页。

正如您所看到的,它在第一页中显示了ID从1到6的最新六篇文章,但当我单击"前进"按钮时,它会再次显示ID为1和2的其他文章,其中ID应为7和8。有人能告诉我是什么导致了这个bug吗?

第一页

第二页

<!-- Right Side Area Start -->
<div class="col-lg-10">
<div class="card-body bg-info">
<h2 class="large-georgia-white-bold">Top Posts</h2>
</div>
<table class="table table-striped table-hover">
<thead class="thead-dark small-times-white">
<tr>
<th>No.</th>
<th>Title</th>
<th>Date&Time</th>
<th>Author</th>
<th>Comments</th>
<th>Details</th>
</tr>
</thead>
<?php
$SrNo = 0;
global $ConnectingDB;
// Query When Pagination is Active i.e Dashboard.php?page=1
if (isset($_GET["page"])) {
$Page = $_GET["page"];
if ($Page==0||$Page<0) {
$ShowPostFrom=0;
}else{
$ShowPostFrom=($Page*6)-6;
}
$sql ="SELECT * FROM posts ORDER BY id desc LIMIT $ShowPostFrom,6";
$stmt=$ConnectingDB->query($sql);
}
// The default SQL query
else{
$sql = "SELECT * FROM posts ORDER BY id desc LIMIT 0,6";
$stmt=$ConnectingDB->query($sql);
}
while ($DataRows=$stmt->fetch()) {
$PostId = $DataRows["id"];
$DateTime = $DataRows["datetime"];
$Author  = $DataRows["author"];
$Title = $DataRows["title"];
$SrNo++;
?>
<tbody class="small-times-black">
<tr>
<td><?php echo $SrNo; ?></td>
<td><?php echo $Title; ?></td>
<td><?php echo $DateTime; ?></td>
<td><?php echo $Author; ?></td>
<td>
<?php $Total = ApproveCommentsAccordingtoPost($PostId);
if ($Total>0) {
?>
<span class="badge badge-success">
<?php
echo $Total; ?>
</span>
<?php  }   ?>
<?php $Total = DisApproveCommentsAccordingtoPost($PostId);
if ($Total>0) {  ?>
<span class="badge badge-danger">
<?php
echo $Total; ?>
</span>
<?php  }  ?>
</td>
<td> <a target="_blank" href="FullPost.php?id=<?php echo $PostId; ?>">
<span class="btn btn-info">Preview</span>
</a>
</td>
</tr>
</tbody>
<?php } ?>
</table>
<!-- Right Side Area End -->
<!-- Pagination -->
<nav>
<ul class="pagination pagination-lg">
<!-- Creating Backward Button -->
<?php if( isset($Page) ) {
if ( $Page>1 ) {?>
<li class="page-item">
<a href="Dashboard.php?page=<?php  echo $Page-1; ?>" class="page-link small-times-black-bold">&laquo;</a>
</li>
<?php } }?>
<?php
global $ConnectingDB;
$sql           = "SELECT COUNT(*) FROM posts";
$stmt          = $ConnectingDB->query($sql);
$RowPagination = $stmt->fetch();
$TotalPosts    = array_shift($RowPagination);
//echo $TotalPosts."<br>";
$PostPagination=$TotalPosts/6;
$PostPagination=ceil($PostPagination);
//echo $PostPagination;
for ($i=1; $i <= $PostPagination ; $i++) {
?>
<li class="page-item">
<a href="Dashboard.php?page=<?php echo $i; ?>" class="page-link small-times-black-bold"><?php echo $i; ?></a>
</li>
<?php } ?>
<!-- Creating Forward Button -->
<?php if ( isset($Page) && !empty($Page) ) {
if ($Page+1 <= $PostPagination) {?>
<li class="page-item">
<a href="Dashboard.php?page=<?php  echo $Page+1; ?>" class="page-link small-times-black-bold">&raquo;</a>
</li>
<?php } }?>
</ul>
</nav>
</div>
</div>
</section>
<!-- Main area end -->

当页面加载并重新启动时,脚本总是重新分配$SrNo = 0。您应该将page*6值添加到其中,这样它就会知道偏移量。事实上,您已经对$ShowPostFrom使用了该逻辑,因此您可以简单地将相同的值分配给$SrNo,它应该可以工作:

if ($Page==0||$Page<0) {
$ShowPostFrom=0;
}else{
$ShowPostFrom=($Page*6)-6;
}
$SrNo = $ShowPostFrom; // <- this is what you should add

如果你不介意修改$ShowPostFrom,你可以完全删除$SrNo,只需使用$ShowPostFrom来显示数字。

最新更新