一、封裝設定資訊
1、我們可以做一個設定檔config.php。將需要使用到的配置全部設定為常數,程式碼如下:
<?php //数据库服务器 define('DB_HOST', 'localhost'); //数据库用户名 define('DB_USER', 'root'); //数据库密码 define('DB_PWD', 'secret'); //库名 define('DB_NAME', 'book'); //字符集 define('DB_CHARSET', 'utf8');
2、2.我們將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';
二、顯示分頁實作
頁要實現分頁中包含以下幾個基本元素:
我們在控制頁碼的時候,都是透過URL網址列傳入頁碼值來實現的頁碼控制。在page.php後面接上頁碼的相關訊息,我們就能夠算出更多的有效資訊。 url控制分頁的效果如下:
在程式碼實作中,是透過limit後的偏移量(offset)和數量(num),這兩個值真正實現的分頁。
limit offset , num
假設每頁顯示5條。最終得到的分頁中控制limit公式如下:
offset的值为 (n-1)*5 num 为规定的5
三、實作步驟;
##1、計算出分頁所需參數
1-1、總數通过查询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'];1-2、目前頁
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;第二種寫法:
if (isset($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; }1-3、最後一頁
//每页显示数 $num = 5; $total = ceil($count / $num);1-4、上一頁異常情況控制
在最後一頁加一時,我們就讓他為最後一頁,即完成了異常控制。
if ($page <= 1) { $page = 1; } if ($page >= $total) { $page = $total; }
2、SQL語句
$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 '
' . $row['username'] . ' | '; echo '' . date('Y-m-d H:i:s', $row['createtime']) . ' | '; echo '' . long2ip($row['createip']) . ' | '; echo '编辑用户 | '; echo '删除用户 | '; echo '
首页 上一页 下一页 尾页 当前是第 ' . $page . '页 共' . $total . '页 |
以上內容可實現了簡單的分頁功能,相了解更多相關內容請造訪PHP中文網:PHP影片教學
以上是php實作分頁的原理與步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!