Heim > Artikel > Backend-Entwicklung > Wie man PHP zur Datenabfrage und zum Umblättern von Seiten verwendet
Bei der Website-Entwicklung ist es häufig erforderlich, Daten abzufragen und in Seiten anzuzeigen. Wenn die Datenmenge sehr groß ist, ist Paging erforderlich, um die Abfrageeffizienz und das Benutzererlebnis sicherzustellen. In diesem Artikel wird erläutert, wie Sie mit PHP Daten abfragen, Seiten umblättern und Bilder auf jeder Seite anzeigen.
1. Datenabfrage Zuerst müssen wir die Daten, die wir abfragen möchten, abrufen und in der Datenbank speichern. Hier nehmen wir als Beispiel eine einfache Schülerinformationstabelle, die Felder wie Name, Geschlecht, Alter, Noten usw. enthält. Zur Demonstration verwenden wir die MySQL-Datenbank.
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;
Dann fügen wir einige Daten sowie die Fotos der Schüler in die Tabelle ein. Hier verwenden wir Bilder wie student1.jpg und 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. Umblättern der Daten
Als nächstes müssen wir eine Datenabfrage und ein Paging in PHP durchführen. Wir definieren, dass auf jeder Seite 5 Daten angezeigt werden, und berechnen dann die Gesamtzahl der Seiten und die aktuelle Seitenzahl. Das Codebeispiel lautet wie folgt:
<?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); ?>
Im obigen Code stellen wir zunächst eine Verbindung zur Datenbank her und definieren die Anzahl der auf jeder Seite angezeigten Datensätze sowie die aktuelle Seitenzahl. Berechnen Sie dann die Gesamtzahl der Datensätze und Gesamtseiten und berechnen Sie die Startposition der Abfrage basierend auf der aktuellen Seitenzahl. Führen Sie abschließend eine Datenabfrage über das Schlüsselwort LIMIT durch und geben Sie die Ergebnisse zurück.
3. Bilder anzeigen
Als nächstes müssen wir die Daten zusammen mit dem Foto jedes Schülers anzeigen. Hier verwenden wir den HTML-Tag a1f02c36ba31691bcfe87b2722de723b, um Bilder anzuzeigen.
<?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; ?>
Im obigen Code verwenden wir eine While-Schleife, um die Abfrageergebnisse zu durchlaufen und das Foto jedes Schülers mit dem Tag a1f02c36ba31691bcfe87b2722de723b anzuzeigen.
Es ist zu beachten, dass das src-Attribut des img-Tags den korrekten Bildpfad angeben muss. 4. Paginierte Navigation Schließlich müssen wir die Seitennavigation am unteren Rand der Seite anzeigen, um Benutzern das Umblättern zu erleichtern.
Das Codebeispiel lautet wie folgt:
<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>
Im obigen Code ermitteln wir zunächst, ob die aktuelle Seitenzahl größer als 1 ist, und zeigen in diesem Fall die Schaltfläche „Vorherige Seite“ an. Verwenden Sie dann eine for-Schleife, um alle Seitenzahlen zu durchlaufen und Navigationslinks zu generieren. Wenn die aktuelle Seitennummer gleich der Schleifenvariablen $i ist, wird die aktuelle Seitennummer angezeigt, andernfalls wird der Link angezeigt.
Stellen Sie abschließend fest, ob die aktuelle Seitenzahl kleiner als die Gesamtseitenzahl ist. Wenn ja, zeigen Sie die Schaltfläche „Nächste Seite“ an. Zusammenfassen In diesem Artikel wird erläutert, wie Sie mit PHP Daten abfragen, Seiten umblättern und Bilder auf jeder Seite anzeigen. Es ist zu beachten, dass zur Sicherstellung der Seitenleistung empfohlen wird, bei der Anzeige von Bildern Miniaturansichten zu verwenden oder die Bildgröße zu begrenzen. Darüber hinaus müssen in der tatsächlichen Entwicklung auch Probleme wie Datenabfragebedingungen und Datensortierung berücksichtigt werden.
Das obige ist der detaillierte Inhalt vonWie man PHP zur Datenabfrage und zum Umblättern von Seiten verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!