<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在真實的項目中,我們是將主機、用戶名、密碼、庫都寫在配置文件當中。 如果在代碼中寫死了,萬一數據庫服務器的相關信息發生變化了,要把所有代碼修改一次顯然不符合程序員的思維。 此外,在每一個需要連接數據庫的頁面中。我們都需要寫上連接、判斷錯誤、設置字符集、太過于麻煩。并且不利于重復使用這些代碼。 我們可以用上之前講過的include系列函數達成目標。示例圖如下: ![](https://box.kancloud.cn/2015-10-13_561c9c5350f16.png) 因此,我們可以做一個配置文件config.php。將需要使用到的配置全部設置為常量,代碼如下: ~~~ <?php <?php //數據庫服務器 define('DB_HOST', 'localhost'); //數據庫用戶名 define('DB_USER', 'root'); //數據庫密碼 define('DB_PWD', 'secret'); //庫名 define('DB_NAME', 'book'); //字符集 define('DB_CHARSET', 'utf8'); ~~~ 我們將connection.php頁面抽取出來,以后需要連接數據庫的時候只需要包含connection.php文件即可。代碼如下: ~~~ <?php include 'config.php'; $conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, DB_CHARSET); ~~~ 我們在以后每個文件使用中直接包含 connection.php文件就可以實現數據庫連接了: ~~~ include 'connection.php'; ~~~ 把上面的準備工作完成,接下來完成分頁。分頁效果如下: ![](https://box.kancloud.cn/2015-10-13_561c9c536b206.png) 頁要實現分頁中包含以下幾個基本元素: | 元素 | 說明 | 備注 | | -- | -- | -- | | 首頁 | 最開始進入到頁面的第一頁 | 用get傳參才進去時默認為1 | | 上一頁 | 當前頁減1 | 如果頁碼為第一頁時減1,為應該為第一頁 | | 下一頁 | 當前頁加1 | 如果頁碼為最后一頁時減1,應該為最后一頁 | | 尾頁 | 最后一頁 | 總條數除以每頁顯示數得到總頁數 | | 當前頁 | 當前所在的頁碼 | 就是當前的頁碼 | | 總頁數 | 一共有多少個頁面 | 總條數除以每頁顯示數 | 我們在控制頁碼的時候,都是通過URL地址欄傳入頁碼值來實現的頁碼控制。在page.php后面接上頁碼的相關信息,我們就能夠算出更多的有效信息。url控制分頁的效果如下: ![](https://box.kancloud.cn/2015-10-13_561c9c5386e2d.png) 在代碼實現中,是通過limit后的偏移量(offset)和數量(num),這兩個值真正實現的分頁。 >limit offset , num | 頁碼 | url中get值 | limit偏移量,數量 | | -- | -- | -- | | 第1頁 | 1 | 0,5 | | 第2頁 | 2 | 5,5 | | 第3頁 | 3 | 10,5 | | 第n頁 | n | (n-1)*5,5 | 假設每頁顯示5條。最終得到的分頁中控制limit公式如下: > offset的值為 (n-1)*5 num 為規定的5 我們通過代碼來實現業務: ###一、計算出分頁所需的參數 ####總數 通過查詢user表的count(id),得到總數$count。 ~~~ $count_sql = 'select count(id) as c from user'; $result = mysqli_query($conn, $count_sql); $data = mysqli_fetch_assoc($result); //得到總的用戶數 $count = $data['c']; ~~~ ####當前頁 剛進入page.php頁時,url為http://www.phpxy.com/page.php,后面是不存在 ?page=1 頁面標識號的。 因此我們需要手動創建一個頁面標識號傳給當前頁碼變量$page。 我們害怕用戶傳的頁面中存在小數等,所以我們做一次強制的類型轉換:(int) $_GET['page']。 第一種寫法: ~~~ $page = isset($_GET['page']) ? (int) $_GET['page'] : 1; ~~~ 第二種寫法 ~~~ if (isset($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; } ~~~ ###最后一頁 每一頁一定是一個整數。就跟小學的時候數學一樣。平均有5.6個人應該準備幾個蘋果。答案一定是6個。 如果頁面出來了20.3個頁面,一定是使用進一法取整函數ceil。讓分頁數變為21。 我們用總數除以每頁顯示的數據條數,就得到了總頁數了。 ~~~ //每頁顯示數 $num = 5; $total = ceil($count / $num); ~~~ ###上一頁、下一頁異常情況控制 如果用戶的在第一頁點擊了上一頁,在最后一頁點擊了下一頁怎么辦呢? 這樣的話數據會超出范圍,而造成我們分頁時無數據顯示。 顯然這種異常情況需要考慮到。因此,如果在分頁時在第一頁減一時,我們就讓他為第一頁。 在最后一頁加一時,我們就讓他為最后一頁,即完成了異常控制。 ~~~ if ($page <= 1) { $page = 1; } if ($page >= $total) { $page = $total; } ~~~ ###二、SQL語句 我們之前說過分頁的核心是通過SQL語句中的offset和num來控制每頁顯示數。 我們在上面還列了具體的公式,我們將公司轉化為代碼如下: ~~~ $num = 5; $offset = ($page - 1) * $num; ~~~ 我們將$num和$offset應用于SQL語句中: ~~~ $sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num"; ~~~ ###控制好URI中的分頁值 ~~~ echo '<tr> <td colspan="5"> <a href="page.php?page=1">首頁</a> <a href="page.php?page=' . ($page - 1) . '">上一頁</a> <a href="page.php?page=' . ($page + 1) . '">下一頁</a> <a href="page.php?page=' . $total . '">尾頁</a> 當前是第 ' . $page . '頁 共' . $total . '頁 </td> </tr>'; ~~~ 我們最后將整體業務串聯起來實現最終效果,代碼如下: ~~~ include 'connection.php'; $count_sql = 'select count(id) as c from user'; $result = mysqli_query($conn, $count_sql); $data = mysqli_fetch_assoc($result); //得到總的用戶數 $count = $data['c']; $page = isset($_GET['page']) ? (int) $_GET['page'] : 1; /* if (isset($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; } */ //每頁顯示數 $num = 5; //得到總頁數 $total = ceil($count / $num); if ($page <= 1) { $page = 1; } if ($page >= $total) { $page = $total; } $offset = ($page - 1) * $num; $sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num"; $result = mysqli_query($conn, $sql); if ($result && mysqli_num_rows($result)) { //存在數據則循環將數據顯示出來 echo '<table width="800" border="1">'; while ($row = mysqli_fetch_assoc($result)) { echo '<tr>'; echo '<td>' . $row['username'] . '</td>'; echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>'; echo '<td>' . long2ip($row['createip']) . '</td>'; echo '<td><a href="edit.php?id=' . $row['id'] . '">編輯用戶</a></td>'; echo '<td><a href="delete.php?id=' . $row['id'] . '">刪除用戶</a></td>'; echo '</tr>'; } echo '<tr><td colspan="5"><a href="page.php?page=1">首頁</a> <a href="page.php?page=' . ($page - 1) . '">上一頁</a> <a href="page.php?page=' . ($page + 1) . '">下一頁</a> <a href="page.php?page=' . $total . '">尾頁</a> 當前是第 ' . $page . '頁 共' . $total . '頁 </td></tr>'; echo '</table>'; } else { echo '沒有數據'; } mysqli_close($conn); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看