PHP MySQL數據分頁

SQL SELECT語句查詢總是可能導致數千條記錄。但是在一個頁面上顯示所有結果並不是一個好主意。因此,我們可以根據要求將此結果劃分爲多個頁面。分頁意味着在多個頁面中顯示您的查詢結果,而不是僅將它們全部放在一個長頁面中。MySQL通過使用LIMIT子句幫助生成分頁,該子句將採用兩個參數。第一個參數爲OFFSET,第二個參數應從數據庫返回多少條記錄。下面是一個使用LIMIT子句獲取記錄以生成分頁的簡單示例。

<html>
<head>
        <title>PHP分頁</title>
</head>
<body>
<?php
         $dbhost = 'localhost';  // 數據庫主機
         $dbuser = 'root';            // 用戶名
         $dbpass = '123456';    // 密碼
         $rec_limit = 10;            // 每頁10條數據
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
         if(! $conn ) {
            die('連接失敗: ' . mysqli_error());
         }
         mysqli_select_db($conn,'test');   // 要操作的數據
         /* 獲取所有的記錄數 */
         $sql = "SELECT COUNT(id) FROM test ";
         $retval = mysqli_query( $conn, $sql );
         if(! $retval ) {
            die('沒有獲取到數據: ' . mysqli_error($conn));
         }
         $row = mysqli_fetch_array($retval, MYSQLI_NUM );
         $rec_count = $row[0];
         if( isset($_GET['page'] ) ) {
            $page = $_GET['page'] + 1;
            $offset = $rec_limit * $page ;
         }else {
            $page = 0;
            $offset = 0;
         }
         $left_rec = $rec_count - ($page * $rec_limit);
         $sql = "SELECT name ".
            "FROM test ".
            "LIMIT $offset, $rec_limit";
         $retval = mysqli_query( $conn, $sql );
         if(! $retval ) {
            die('不能獲取到數據: ' . mysqli_error($conn));
         }
         while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) {
            echo "TEST name :{$row['name']}  <br> ";
         }
         if( $page > 0 ) {
            $last = $page - 2;
            echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$last\">上一頁</a> |";
            echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$page\">下一頁</a>";
         }else if( $page == 0 ) {
            echo "<a href = \"".$_SERVER['PHP_SELF']."?page=$page\">下一頁</a>";
         }else if( $left_rec < $rec_limit ) {
            $last = $page - 2;
            echo "<a href =  \"".$_SERVER['PHP_SELF']."?page=$last\">最後一頁</a>";
         }
         mysqli_close($conn);
      ?>
</body>
</html>

修改每頁顯示的數據或者插入多條數據查看效果,PHP MySQL插入數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章