加入收藏 | 设为首页 | 会员中心 | 我要投稿 哈尔滨站长网 (https://www.0451zz.cn/)- 人体识别、图像分析、开发者工具、基础存储、物联安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

一个简单php和mysql数据分页程序

发布时间:2022-07-22 09:16:27 所属栏目:PHP教程 来源:互联网
导读:?php // Adams Custom PHP MySQL Pagination Tutorial and Script // You have to put your mysql connection data and alter the SQL queries(both queries) // This script is in tutorial form and is accompanied by the following video: mysql_connect
   <?php
  // Adam's Custom PHP MySQL Pagination Tutorial and Script
  // You have to put your mysql connection data and alter the SQL queries(both queries)
  // This script is in tutorial form and is accompanied by the following video:
  mysql_connect("DB_Host_Here","DB_Username_Here","DB_Password_Here") or die (mysql_error());
  mysql_select_db("DB_Name_Here") or die (mysql_error());
  //////////////  QUERY THE MEMBER DATA INITIALLY LIKE YOU NORMALLY WOULD
  $sql = mysql_query("SELECT id, firstname, country FROM myTable ORDER BY id ASC");
  //////////////////////////////////// Adam's Pagination Logic ////////////////////////////////////////////////////////////////////////
  $nr = mysql_num_rows($sql); // Get total of Num rows from the database query
  if (isset($_GET['pn'])) { // Get pn from URL vars if it is present
      $pn = preg_replace('#[^0-9]#i', '', $_GET['pn']); // filter everything but numbers for security(new)
      //$pn = ereg_replace("[^0-9]", "", $_GET['pn']); // filter everything but numbers for security(deprecated)
  } else { // If the pn URL variable is not present force it to be value of page number 1
      $pn = 1;
  }  
  //This is where we set how many database items to show on each page  
  $itemsPerPage = 10;  
  // Get the value of the last page in the pagination result set
  $lastPage = ceil($nr / $itemsPerPage);
  // Be sure URL variable $pn(page number) is no lower than page 1 and no higher than $lastpage
  if ($pn < 1) { // If it is less than 1
      $pn = 1; // force if to be 1
  } else if ($pn > $lastPage) { // if it is greater than $lastpage
      $pn = $lastPage; // force it to be $lastpage's value
  }  
  // This creates the numbers to click in between the next and back buttons
  // This section is explained well in the video that accompanies this script
  $centerPages = "";
  $sub1 = $pn - 1;
  $sub2 = $pn - 2;
  $add1 = $pn + 1;
  $add2 = $pn + 2;
  if ($pn == 1) {
      $centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a>  ';
  } else if ($pn == $lastPage) {
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a>  ';
      $centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';
  } else if ($pn > 2 && $pn < ($lastPage - 1)) {
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a>  ';
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a>  ';
      $centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a>  ';
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a>  ';
  } else if ($pn > 1 && $pn < $lastPage) {
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a>  ';
      $centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';
      $centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a>  ';
  }
  // This line sets the "LIMIT" range... the 2 values we place to choose a range of rows from database in our query
  $limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;  
  // Now we are going to run the same query as above but this time add $limit onto the end of the SQL syntax
  // $sql2 is what we will use to fuel our while loop statement below
  $sql2 = mysql_query("SELECT id, firstname, country FROM myTable ORDER BY id ASC $limit");  
  //////////////////////////////// END Adam's Pagination Logic ////////////////////////////////////////////////////////////////////////////////
  ///////////////////////////////////// Adam's Pagination Display Setup /////////////////////////////////////////////////////////////////////
  $paginationDisplay = ""; // Initialize the pagination output variable
  // This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display
  if ($lastPage != "1"){
      // This shows the user what page they are on, and the total number of pages
      $paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. '        ';
      // If we are not on page 1 we can place the Back button
      if ($pn != 1) {
          $previous = $pn - 1;
          $paginationDisplay .=  '   <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
      }  
      // Lay in the clickable numbers display here between the Back and Next links
      $paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
      // If we are not on the very last page we can place the Next button
      if ($pn != $lastPage) {
          $nextPage = $pn + 1;
          $paginationDisplay .=  '   <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '"> Next</a> ';
      }  
  }
  ///////////////////////////////////// END Adam's Pagination Display Setup ///////////////////////////////////////////////////////////////////////////
  // Build the Output Section Here
  $outputList = '';
  while($row = mysql_fetch_array($sql2)){
      $id = $row["id"];
      $firstname = $row["firstname"];
      $country = $row["country"];
      $outputList .= '<h1>' . $firstname . '</h1><h2>' . $country . ' </h2><hr />';
       
  } // close while loop
  ?>
  <html>
  <head>
  <title>Adam's Pagination</title>
  <style type="text/css">
  <!--
  .pagNumActive {
      color: #000;
      border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;
  }
  .paginationNumbers a:link {
      color: #000;
      text-decoration: none;
      border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;
  }
  .paginationNumbers a:visited {
      color: #000;
      text-decoration: none;
      border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;
  }
  .paginationNumbers a:hover {
      color: #000;
      text-decoration: none;
      border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;
  }
  .paginationNumbers a:active {
      color: #000;
      text-decoration: none;
      border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;
  }
  -->
  </style>
  </head>
  <body>
     <div style="margin-left:64px; margin-right:64px;">
       <h2>Total Items: <?php echo $nr; ?></h2>
     </div>  
        <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
        <div style="margin-left:64px; margin-right:64px;"><?php print "$outputList"; ?></div>
        <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
  </body>
  </html> 

(编辑:哈尔滨站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读