【问题标题】:ID number doesn't change身份证号码不变
【发布时间】:2020-07-11 07:58:02
【问题描述】:

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

如您所见,它在第一页显示最新的六个帖子,ID 为 1 到 6,但是当我单击前进按钮时,它再次显示它所在的其他帖子的 ID 1 和 2应该是 7 和 8。谁能告诉我是什么导致了这个错误?

First page

Second page

<!-- 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 -->

【问题讨论】:

    标签: php html mysql bootstrap-4


    【解决方案1】:

    当页面加载并重新开始时,您的脚本始终会重新分配 $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显示号码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多