Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie Abfrage-Paging und zeigen Seitenzahlen in PHP an
In der Webentwicklung sind Datenabfrage und -anzeige sehr häufige Vorgänge. Für die Seitenanzeige der abgefragten Daten muss die entsprechende Seitennummer auf der Seite angezeigt werden. Dies ist eine notwendige Voraussetzung für Benutzer, um das Umblättern von Seiten zu erleichtern. In diesem Artikel wird erläutert, wie Sie Abfrage-Paging über PHP-Code implementieren und die entsprechenden Seitenzahlen auf der Listenseite anzeigen.
Eine vollständige Paging-Funktion muss mehrere Faktoren berücksichtigen, wie z. B. Abfragebedingungen, Anzahl der Paginierungen und aktuelle Seitenzahl. In der spezifischen Implementierung müssen Sie zunächst die Gesamtzahl aller Daten, die die Bedingungen erfüllen, über die Abfragebedingungen abfragen, dann die Gesamtzahl der Seiten basierend auf der Gesamtzahl der Daten und der auf jeder Seite angezeigten Zahl berechnen und Paging-Abfragen durchführen und schließlich die entsprechenden Daten und Seitenzahlen im Frontend anzeigen.
Der spezifische Prozess ist wie folgt:
items
, die über ein Feld status
verfügt, das den Datenstatus angibt. Wir müssen alle Daten mit dem Status 1
abfragen Für die Gesamtzahl der Datensätze lautet der Code wie folgt:
// 连接数据库 $conn = mysqli_connect('<host>', '<username>', '<password>', '<database>'); // 构造查询SQL,获取符合条件的数据总数 $sql = "SELECT COUNT(*) AS total FROM `items` WHERE `status`=1"; $res = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($res); $total = $row['total'];
mysqli_connect
eine Verbindung zur Datenbank her, erstellen dann das Abfrage-SQL und führen die Abfrageoperation mit Hilfe durch der Funktion mysqli_query
Schließlich wird die Gesamtzahl aus den Abfrageergebnissen über die Funktion mysqli_fetch_assoc
ermittelt. 2.2 Berechnen Sie die Gesamtzahl der Seiten und die aktuelle Seitenzahl. Als Nächstes müssen wir die Gesamtzahl der Seiten und die aktuelle Seitenzahl, die vom Benutzer angefordert wurden, basierend auf der auf jeder Seite angezeigten Zahl und der Gesamtdatenmenge berechnen . // 定义每页显示的数据条数和当前请求的页码,默认为1和1 $limit = 10; // 每页显示的数据条数 $page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 当前请求的页码 // 计算总页数 $totalPage = ceil($total / $limit); if ($page > $totalPage || $page < 1) { $page = 1; } // 计算分页查询的起始位置 $offset = ($page - 1) * $limit;
isset
, um zu prüfen, ob im Anforderungsparameter ein Parameter page
vorhanden ist. Wenn ja, verwenden wir den Parameter intval</. code>-Funktion zum Konvertieren in den Integer-Typ; wenn nicht verfügbar, wird standardmäßig die erste Seite verwendet. Anschließend wird die Gesamtzahl der Seiten über die Funktion <code>ceil
berechnet und die Gültigkeit der angeforderten Seitenzahl beurteilt. items
的数据表,其中有一个status
字段表示数据状态,我们需要查询状态为1
的所有数据记录总数,代码如下:
// 查询数据(以status字段为1的数据为例) $sql = "SELECT * FROM `items` WHERE `status`=1 LIMIT {$offset},{$limit}"; $res = mysqli_query($conn, $sql); $rows = mysqli_fetch_all($res, MYSQLI_ASSOC);
该段代码中,我们首先通过mysqli_connect
函数连接到数据库,然后构造查询SQL,并借助mysqli_query
函数执行查询操作,最后通过mysqli_fetch_assoc
函数从查询结果中获取总数。
接下来,我们需要根据每页显示的数量和总数据量,计算出总页数和用户请求的当前页码。
<!-- 分页展示 --> <ul> <?php for ($i = 1; $i <= $totalPage; $i++) : ?> <li <?php if ($i == $page) echo 'class="active"' ?>> <?php if ($i == $page) : ?> <?php echo $i; ?> <?php else : ?> <a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php endif; ?> </li> <?php endfor; ?> </ul>
其中,我们通过isset
函数检查请求参数中是否有page
参数,如果有,则通过intval
函数将其转换为整型;如果没有,则默认为第一页。然后通过ceil
函数计算出总页数,并对请求的页码进行有效性判断。
最后,我们需要计算出分页查询的起始位置,以便在数据库中进行分页查询。我们通过简单的乘法运算计算出数据开始查询的偏移量。
有了总数据量、总页数和查询偏移量,我们就可以进行分页查询了。下面是查询分页数据的代码示例:
rrreee该代码段将查询偏移量和每页显示数量传入SQL语句中的LIMIT
关键字中,执行分页查询操作。查询结果通过mysqli_fetch_all
函数获取,并以PHP数组的形式返回给调用者。
最后,我们需要将查询结果和对应的页码展示到前端页面上。对于页码展示,我们通常使用HTML的<ul>
和<li>
元素,将每一页的页码链接包装在<li>
元素中,并使用<ul>
元素将所有页码链接包裹起来。
上述代码中,我们使用一个for
循环遍历所有页码,对于当前页码,我们给其对应的<li>
元素添加一个active
类,以便于前端样式处理。同时,我们采用了条件语句来处理当前页码的展示,当前页码不需要添加链接,通过echo
语句直接输出即可;而其他页码则需要通过<a>
Schließlich müssen wir die Startposition der Paging-Abfrage berechnen, um eine Paging-Abfrage in der Datenbank durchzuführen. Wir berechnen den Offset, bei dem die Datenabfrage beginnt, durch eine einfache Multiplikationsoperation.
Mit dem Gesamtdatenvolumen, der Gesamtzahl der Seiten und dem Abfrage-Offset können wir eine Paging-Abfrage durchführen. Das Folgende ist ein Codebeispiel zum Abfragen von Paging-Daten:
rrreee🎜Dieses Code-Snippet übergibt den Abfrage-Offset und die Anzahl der Anzeigen pro Seite an das SchlüsselwortLIMIT
in der SQL-Anweisung, um den Paging-Abfragevorgang auszuführen. Die Abfrageergebnisse werden über die Funktion mysqli_fetch_all
abgerufen und in Form eines PHP-Arrays an den Aufrufer zurückgegeben. 🎜🎜2.4 Seitenzahlen in der Paginierung anzeigen🎜🎜Abschließend müssen wir die Abfrageergebnisse und die entsprechenden Seitenzahlen auf der Startseite anzeigen. Für die Seitenzahlanzeige verwenden wir normalerweise die HTML-Elemente <ul>
und <li>
, um den Seitenzahllink jeder Seite in <li> einzuschließen.
-Element und verwenden Sie das <ul>
-Element, um alle Seitenzahl-Links zu umschließen. 🎜rrreee🎜Im obigen Code verwenden wir eine for
-Schleife, um alle Seitenzahlen zu durchlaufen. Für die aktuelle Seitenzahl fügen wir einen active zum entsprechenden <li> Element
Klasse, um die Front-End-Stilverarbeitung zu erleichtern. Gleichzeitig verwenden wir bedingte Anweisungen, um die Anzeige der aktuellen Seitennummer zu verarbeiten. Es ist nicht erforderlich, einen Link hinzuzufügen, sie kann jedoch direkt über die Anweisung echo
ausgegeben werden Seitenzahlen müssen über <a>-Element fügt einen Link hinzu. 🎜🎜3. Zusammenfassung🎜🎜In diesem Artikel wird erläutert, wie Sie Abfrage-Paging über PHP implementieren und die Paging-Seitennummer auf der Front-End-Seite anzeigen. Die Implementierung der Paging-Funktion ist eine häufige Aufgabe in der Webentwicklung. Durch die Einführung dieses Artikels glaube ich, dass jeder ein tieferes Verständnis der Paging-Funktion hat. 🎜
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Abfrage-Paging und zeigen Seitenzahlen in PHP an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!