首頁 >後端開發 >PHP問題 >如何使用PHP進行資料查詢與翻頁

如何使用PHP進行資料查詢與翻頁

PHPz
PHPz原創
2023-03-29 11:31:201041瀏覽

在網站開發中,經常需要進行資料查詢並分頁顯示。當資料量非常大時,需要進行分頁才能確保查詢效率和使用者體驗。本文將介紹如何使用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[&#39;pageNum&#39;]) ? intval($_GET[&#39;pageNum&#39;]) : 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標籤a1f02c36ba31691bcfe87b2722de723b來顯示圖片。

<?php while ($row = mysqli_fetch_assoc($result)): ?>
  <div>
    <h3><?php echo $row[&#39;name&#39;]; ?></h3>
    <p>性别:<?php echo $row[&#39;gender&#39;]; ?></p>
    <p>年龄:<?php echo $row[&#39;age&#39;]; ?></p>
    <p>成绩:<?php echo $row[&#39;score&#39;]; ?></p>
    <img src="<?php echo $row[&#39;picture&#39;]; ?>" width="100"/>
  </div>
<?php endwhile; ?>

在上述程式碼中,我們使用while循環遍歷查詢結果,並使用a1f02c36ba31691bcfe87b2722de723b標籤顯示每個學生的照片。

要注意的是,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn