在網站開發中,經常需要進行資料查詢並分頁顯示。當資料量非常大時,需要進行分頁才能確保查詢效率和使用者體驗。本文將介紹如何使用PHP進行資料查詢和翻頁,並在每頁顯示圖片。
1. 資料查詢 首先,我們需要取得要查詢的數據,並將其儲存在資料庫中。這裡我們以一個簡單的學生資料表為例,包含姓名、性別、年齡、成績等欄位。我們使用MySQL資料庫進行演示。
CREATE TABLE `students` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `gender` varchar(10) NOT NULL, `age` int(11) NOT NULL, `score` int(11) NOT NULL, `picture` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
然後,我們向表中插入一些數據,以及學生的照片。這裡我們使用student1.jpg、student2.jpg等圖片。
INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Tom', 'M', 18, 80, 'student1.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Jerry', 'F', 17, 90, 'student2.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Mike', 'M', 19, 75, 'student3.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Mary', 'F', 18, 85, 'student4.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('John', 'M', 20, 70, 'student5.jpg'); INSERT INTO `students` (`name`, `gender`, `age`, `score`, `picture`) VALUES ('Jane', 'F', 19, 95, 'student6.jpg');
2. 資料翻頁
接下來,我們需要在PHP中進行資料查詢和分頁。我們定義每頁顯示5條數據,然後計算出總頁數和目前頁碼。程式碼範例如下:
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); // 每页显示的记录数 $pageSize = 5; // 当前页码 $pageNum = isset($_GET['pageNum']) ? intval($_GET['pageNum']) : 1; // 计算总记录数和总页数 $sql = "SELECT count(*) FROM students"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_row($result); $totalRecords = $row[0]; $totalPages = ceil($totalRecords / $pageSize); // 计算查询起始位置 $startIndex = ($pageNum - 1) * $pageSize; // 查询数据 $sql = "SELECT * FROM students LIMIT $startIndex, $pageSize"; $result = mysqli_query($conn, $sql); ?>
在上述程式碼中,我們首先連接資料庫,並定義了每頁顯示的記錄數和目前頁碼。然後,計算總記錄數和總頁數,並根據目前頁碼計算查詢起始位置。最後,透過LIMIT關鍵字進行資料查詢並傳回結果。
3. 顯示圖片
接下來,我們需要在顯示數據的同時,也顯示每個學生的照片。這裡我們使用HTML標籤來顯示圖片。
<?php while ($row = mysqli_fetch_assoc($result)): ?> <div> <h3><?php echo $row['name']; ?></h3> <p>性别:<?php echo $row['gender']; ?></p> <p>年龄:<?php echo $row['age']; ?></p> <p>成绩:<?php echo $row['score']; ?></p> <img src="<?php echo $row['picture']; ?>" width="100"/> </div> <?php endwhile; ?>
在上述程式碼中,我們使用while循環遍歷查詢結果,並使用標籤顯示每個學生的照片。
要注意的是,img標籤的src屬性需要指定正確的圖片路徑。 4. 分頁導航 最後,我們需要在頁面底部顯示分頁導航,方便使用者進行翻頁操作。
程式碼範例如下:
<div> <?php if ($pageNum > 1): ?> <a href="?pageNum=<?php echo $pageNum - 1; ?>">上一页</a> <?php endif; ?> <?php for ($i = 1; $i <= $totalPages; $i++): ?> <?php if ($i == $pageNum): ?> <span><?php echo $i; ?></span> <?php else: ?> <a href="?pageNum=<?php echo $i; ?>"><?php echo $i; ?></a> <?php endif; ?> <?php endfor; ?> <?php if ($pageNum < $totalPages): ?> <a href="?pageNum=<?php echo $pageNum + 1; ?>">下一页</a> <?php endif; ?> </div>
在上述程式碼中,我們先判斷目前頁碼是否大於1,如果是,則顯示「上一頁」按鈕。然後使用for循環遍歷所有頁碼並產生導航連結。如果目前頁碼和循環變數$i相等,則顯示目前頁碼,否則顯示連結。
最後再判斷目前頁碼是否小於總頁數,如果是,則顯示「下一頁」按鈕。 總結 本文介紹如何使用PHP進行資料查詢和翻頁,並在每頁顯示圖片。需要注意的是,為了確保頁面效能,建議在圖片顯示時使用縮圖或限制圖片尺寸。另外,在實際開發中,還需要考慮資料查詢條件、資料排序等問題。
以上是如何使用PHP進行資料查詢與翻頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!