引言:
在網站開發中,數據分頁功能是展示大量數據時不可或缺的一部分。分頁不僅能提升網站性能,還能為用戶提供更好的瀏覽體驗。本篇文章將通過PHP代碼,向您展示如何實現一個簡單而高效的數據分頁功能。
在開始編寫代碼之前,首先需要準備一個MySQL數據庫及相應的數據表。假設我們已經創建了一個名為“users”的數據表,結構如下:
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
age int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php
function connectDB() {
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢測連接是否成功
if ($conn-> connect_error) {
die("連接失敗: " . $conn->connect_error);
}
return $conn;
}
?>
<?php
function getTotalCount() {
$conn = connectDB();
$sql = "SELECT COUNT(*) AS count FROM users";
$result = $conn-> query($sql);
$row = $result->fetch_assoc();
$count = $row["count"];
$conn->close();
return $count;
}
?>
<?php
function getData($page, $pageSize) {
$conn = connectDB();
$start = ($page - 1) * $pageSize;
$sql = "SELECT * FROM users LIMIT $start, $pageSize";
$result = $conn-> query($sql);
$data = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
$conn->close();
return $data;
}
?>
<?php
function showPagination($page, $pageSize, $totalCount) {
$totalPage = ceil($totalCount / $pageSize);
$prevPage = $page - 1;
$nextPage = $page + 1;
echo "<div class='pagination'> ";
if ($page > 1) {
echo "<a href='?page=$prevPage'>上一頁</a>";
}
for ($i = 1; $i <= $totalPage; $i++) {
if ($i == $page) {
echo "$i";
} else {
echo " <a href='?page=$i'>$i</a> ";
}
}
if ($page < $totalPage) {
echo "<a href='?page=$nextPage'>下一頁</a>";
}
echo "</div> ";
}
?>
將以上的函數代碼整合到一個PHP文件中,並添加以下代碼來顯示分頁功能:
<?php
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$pageSize = 10;
$totalCount = getTotalCount();
$data = getData($page, $pageSize);
// 顯示數據
foreach ($data as $row) {
echo sprintf("ID:%s,姓名:%s,年齡:%s<br> ", $row['id'], $row['name'], $row['age']);
}
// 顯示分頁導航showPagination($page, $pageSize, $totalCount);
?>
通過以上步驟,我們成功實現了一個簡單的數據分頁功能,利用PHP和MySQL將數據分頁展示。您可以根據實際需求,修改或擴展這些代碼以適應更複雜的分頁功能。希望本文能夠幫助開發者在實際項目中更好地應用數據分頁。