Dalam pembangunan laman web, selalunya perlu untuk menanyakan data dan memaparkannya dalam halaman. Apabila jumlah data sangat besar, paging diperlukan untuk memastikan kecekapan pertanyaan dan pengalaman pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menanyakan data, membelok halaman dan memaparkan gambar pada setiap halaman.
1. Pertanyaan data Pertama, kita perlu mendapatkan data yang ingin kita tanyakan dan menyimpannya dalam pangkalan data. Di sini kami mengambil jadual maklumat pelajar ringkas sebagai contoh, termasuk medan seperti nama, jantina, umur, gred, dll. Kami menggunakan pangkalan data MySQL untuk demonstrasi.
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;
Kemudian, kami memasukkan beberapa data ke dalam jadual, serta gambar pelajar. Di sini kami menggunakan gambar seperti student1.jpg dan 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
Seterusnya, kita perlu melakukan pertanyaan data dan halaman dalam PHP. Kami mentakrifkan bahawa setiap halaman memaparkan 5 keping data, dan kemudian mengira jumlah bilangan halaman dan nombor halaman semasa. Contoh kod adalah seperti berikut:
<?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); ?>
Dalam kod di atas, kami mula-mula menyambung ke pangkalan data dan menentukan bilangan rekod yang dipaparkan pada setiap halaman dan nombor halaman semasa. Kemudian, hitung jumlah bilangan rekod dan jumlah halaman, dan kira kedudukan permulaan pertanyaan berdasarkan nombor halaman semasa. Akhir sekali, lakukan pertanyaan data melalui LIMIT kata kunci dan kembalikan hasilnya.
3
Seterusnya, kita perlu memaparkan data bersama-sama gambar setiap pelajar. Di sini kami menggunakan teg 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; ?>
Dalam kod di atas, kami menggunakan gelung sementara untuk mengulangi hasil pertanyaan dan memaparkan foto setiap pelajar menggunakan teg
Perlu diambil perhatian bahawa atribut src bagi teg img perlu menentukan laluan imej yang betul. 4. Navigasi penomboran Akhir sekali, kita perlu memaparkan navigasi paging di bahagian bawah halaman untuk memudahkan pengguna membelok halaman.
Contoh kod adalah seperti berikut:
<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>
Dalam kod di atas, kami mula-mula menentukan sama ada nombor halaman semasa lebih besar daripada 1 dan jika ya, paparkan "Halaman Sebelumnya" butang. Kemudian gunakan gelung for untuk melelaran melalui semua nombor halaman dan menjana pautan navigasi. Jika nombor halaman semasa adalah sama dengan pembolehubah gelung $i, nombor halaman semasa dipaparkan, jika tidak pautan dipaparkan.
Akhir sekali, ia dinilai sama ada nombor halaman semasa adalah kurang daripada jumlah halaman Jika ya, butang "Halaman Seterusnya" dipaparkan. rumuskan Artikel ini memperkenalkan cara menggunakan PHP untuk menanyakan data, membelok halaman dan memaparkan gambar pada setiap halaman. Perlu diingatkan bahawa untuk memastikan prestasi halaman, adalah disyorkan untuk menggunakan lakaran kecil atau mengehadkan saiz imej semasa memaparkan imej. Di samping itu, dalam pembangunan sebenar, isu seperti syarat pertanyaan data dan pengisihan data juga perlu dipertimbangkan.
Atas ialah kandungan terperinci Cara menggunakan PHP untuk pertanyaan data dan mengubah halaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!