您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“怎么使用PHP進(jìn)行數(shù)據(jù)查詢和翻頁(yè)”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“怎么使用PHP進(jìn)行數(shù)據(jù)查詢和翻頁(yè)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
1. 數(shù)據(jù)查詢 首先,我們需要獲取要查詢的數(shù)據(jù),并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中。這里我們以一個(gè)簡(jiǎn)單的學(xué)生信息表為例,包含姓名、性別、年齡、成績(jī)等字段。我們使用MySQL數(shù)據(jù)庫(kù)進(jìn)行演示。
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;
然后,我們向表中插入一些數(shù)據(jù),以及學(xué)生的照片。這里我們使用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. 數(shù)據(jù)翻頁(yè)
接下來(lái),我們需要在PHP中進(jìn)行數(shù)據(jù)查詢和分頁(yè)。我們定義每頁(yè)顯示5條數(shù)據(jù),然后計(jì)算出總頁(yè)數(shù)和當(dāng)前頁(yè)碼。代碼示例如下:
<?php
// 連接數(shù)據(jù)庫(kù)
$conn = mysqli_connect("localhost", "username", "password", "database");
// 每頁(yè)顯示的記錄數(shù)
$pageSize = 5;
// 當(dāng)前頁(yè)碼
$pageNum = isset($_GET['pageNum']) ? intval($_GET['pageNum']) : 1;
// 計(jì)算總記錄數(shù)和總頁(yè)數(shù)
$sql = "SELECT count(*) FROM students";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_row($result);
$totalRecords = $row[0];
$totalPages = ceil($totalRecords / $pageSize);
// 計(jì)算查詢起始位置
$startIndex = ($pageNum - 1) * $pageSize;
// 查詢數(shù)據(jù)
$sql = "SELECT * FROM students LIMIT $startIndex, $pageSize";
$result = mysqli_query($conn, $sql);
?>
在上述代碼中,我們首先連接數(shù)據(jù)庫(kù),并定義了每頁(yè)顯示的記錄數(shù)和當(dāng)前頁(yè)碼。然后,計(jì)算總記錄數(shù)和總頁(yè)數(shù),并根據(jù)當(dāng)前頁(yè)碼計(jì)算查詢起始位置。最后,通過(guò)LIMIT關(guān)鍵字進(jìn)行數(shù)據(jù)查詢并返回結(jié)果。
3. 顯示圖片
接下來(lái),我們需要在顯示數(shù)據(jù)的同時(shí),也顯示每個(gè)學(xué)生的照片。這里我們使用HTML標(biāo)簽<img>來(lái)顯示圖片。
<?php while ($row = mysqli_fetch_assoc($result)): ?>
<div>
<h4><?php echo $row['name']; ?></h4>
<p>性別:<?php echo $row['gender']; ?></p>
<p>年齡:<?php echo $row['age']; ?></p>
<p>成績(jī):<?php echo $row['score']; ?></p>
<img src="<?php echo $row['picture']; ?>" width="100"/>
</div>
<?php endwhile; ?>
在上述代碼中,我們使用while循環(huán)遍歷查詢結(jié)果,并使用<img>標(biāo)簽顯示每個(gè)學(xué)生的照片。
需要注意的是,img標(biāo)簽的src屬性需要指定正確的圖片路徑。 4. 分頁(yè)導(dǎo)航 最后,我們需要在頁(yè)面底部顯示分頁(yè)導(dǎo)航,方便用戶進(jìn)行翻頁(yè)操作。
代碼示例如下:
<div>
<?php if ($pageNum > 1): ?>
<a href="?pageNum=<?php echo $pageNum - 1; ?>">上一頁(yè)</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; ?>">下一頁(yè)</a>
<?php endif; ?>
</div>
在上述代碼中,我們首先判斷當(dāng)前頁(yè)碼是否大于1,如果是,則顯示“上一頁(yè)”按鈕。然后使用for循環(huán)遍歷所有頁(yè)碼并生成導(dǎo)航鏈接。如果當(dāng)前頁(yè)碼和循環(huán)變量$i相等,則顯示當(dāng)前頁(yè)碼,否則顯示鏈接。
讀到這里,這篇“怎么使用PHP進(jìn)行數(shù)據(jù)查詢和翻頁(yè)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。