检测上一个下一个ID

时间:2018-07-16 05:40:02

标签: php pdo

我有一个带有上一个和下一个按钮的小脚本。 我的问题是我想检测ID并将其放置在这些按钮中

这是分页代码

  <body>
    <?php include_once 'data.php'; ?>
    <center>
        <ul class="pagination">
        <?php
            if($page_counter == 0){
                echo "<li><a href=?start='0' class='active'>0</a></li>";
                for($j=1; $j < $paginations; $j++) { 
                  echo "";
               }
            }else{
                echo "<a href=?start=$previous><button>Previous</button></a>"; 
                for($j=0; $j < $paginations; $j++) {
                 if($j == $page_counter) {
                    echo " ";
                 }else{
                    echo " ";
                 } 
              }if($j != $page_counter+1)
                echo "<a href=?start=$next><button>Next</button></a>"; 
            } 
        ?>
        </ul>
        </center>  

在这一部分中,我有ID,但问题是我无法通过此示例将其放入分页中。

       <?php 
                foreach($result as $row) { 
                    echo '

      <div class="card"><button1>

      '. $row['notice_id'] .'

       <div class="time-left">
      <div class="dropdown1">
       ' ;
      }
      }
      else {
      echo '';
      }
      $conn->close();
      ?> 
      </div></div>

这是data.php中的代码,我想我需要将一些代码放入其中以从ID中进行检测

<?php 
//include configuration file
require 'configuration.php';

$start = 0;  $per_page = 1;
$page_counter = 0;
$next = $page_counter + 1;
$previous = $page_counter - 1;

if(isset($_GET['start'])){
 $start = $_GET['start'];
 $page_counter =  $_GET['start'];
 $start = $start *  $per_page;
 $next = $page_counter + 1;
 $previous = $page_counter - 1;
}
// query to get messages from messages table
$q = "SELECT * FROM group_notice LIMIT $start, $per_page";
$query = $db->prepare($q);
$query->execute();

if($query->rowCount() > 0){
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
}
// count total number of rows in students table
$count_query = "SELECT * FROM group_notice";
$query = $db->prepare($count_query);
$query->execute();
$count = $query->rowCount();
// calculate the pagination number by dividing total number of rows with per page.
$paginations = ceil($count / $per_page);
?>

1 个答案:

答案 0 :(得分:0)

您可以使用一些公式来计算结果的极限和偏移。 例如,您有100条记录,并且想要将其分页为每页10条记录,则公式如下所示。

 // Get Page from Query String
 $page = 1;
 if(!empty($_GET["page"])){
  $page = $_GET["page"];
 }

 // Get record count
 $count_query = "SELECT * FROM group_notice";
 $query = $db->prepare($count_query);
 $query->execute();
 $count = $query->rowCount();
 $per_page = 10; // records per page
 $pages = ceil($count/$per_page); // get total page
 $start = $page * $per_page - $per_page; // get offset

 // Do something with your records
 $query = db->prepare("SELECT * FROM group_notice LIMIT ?, ?");
 $query->bind_param("ii", $start, $per_page); // you should use bind param if you use prepared statement
 $query->execute();
 if($query->rowCount() > 0){
   $result = $query->fetchAll(PDO::FETCH_ASSOC);
 }

 if($page > 1){
  echo '<a href="?page='.$page-1.'">Prev</a>'; // Print Prev Page
 }
 for($i = 1; $i <= $pages){
  echo '<a href="?page='.$page+$i.'">'.$i.'</a>'; // Print Page Number
 }
 if($page < $pages){
  echo '<a href="?page='.$page+1.'">Next</a>'; // Print Next Page
 }

希望有帮助。