Идентификационный номер не меняется - PullRequest
0 голосов
/ 30 марта 2020

Я создаю блог CMS, и это одна из страниц, доступных администраторам. Я пытаюсь реализовать разбиение на страницы.

Как видите, на первой странице отображаются последние шесть сообщений с идентификаторами от 1 до 6, но когда я нажимаю на кнопку пересылки, отображается снова идентификаторы 1 и 2 для других постов, в которых должно быть 7 и 8. Может кто-нибудь сказать мне, что вызывает эту ошибку?

Первая страница

Вторая страница

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

1 Ответ

0 голосов
/ 31 марта 2020

Ваш скрипт всегда переназначает $SrNo = 0, когда страница загружается и запускается заново. Вы должны добавить к ней значение страницы * 6, чтобы она узнала о смещении. Фактически, вы уже используете эту логику c для $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, чтобы показать число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...