Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie Abfrage-Paging und zeigen Seitenzahlen in PHP an

So implementieren Sie Abfrage-Paging und zeigen Seitenzahlen in PHP an

PHPz
PHPzOriginal
2023-03-29 10:10:471134Durchsuche

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.

1. Grundprinzipien des Abfrage-Pagings

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:

    <li>Rufen Sie die Abfragebedingungen ab. <li>Fragen Sie die Gesamtdatenmenge ab, die die Bedingungen erfüllt. <li>Berechnen Sie die Gesamtzahl der Seiten basierend auf der auf jeder Seite angezeigten Zahl. <li>Rufen Sie die aktuelle Seite ab Vom Benutzer angeforderte Nummer. <li>Berechnen Sie die Startposition der Paging-Abfrage Implementieren Sie die Abfrage-Paging-Funktion über PHP-Code. <li>2.1 Gesamtabfrage <li>Zuerst müssen wir die Gesamtdatenmenge abfragen, die die Bedingungen erfüllt. Angenommen, wir haben eine Datentabelle mit dem Namen 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'];
In diesem Code stellen wir zunächst über die Funktion 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;

Unter anderem verwenden wir die Funktion 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函数从查询结果中获取总数。

2.2 计算总页数和当前页码

接下来,我们需要根据每页显示的数量和总数据量,计算出总页数和用户请求的当前页码。

<!-- 分页展示 -->
<ul>
    <?php for ($i = 1; $i <= $totalPage; $i++) : ?>
        <li <?php if ($i == $page) echo &#39;class="active"&#39; ?>>
            <?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函数计算出总页数,并对请求的页码进行有效性判断。

最后,我们需要计算出分页查询的起始位置,以便在数据库中进行分页查询。我们通过简单的乘法运算计算出数据开始查询的偏移量。

2.3 执行分页查询

有了总数据量、总页数和查询偏移量,我们就可以进行分页查询了。下面是查询分页数据的代码示例:

rrreee

该代码段将查询偏移量和每页显示数量传入SQL语句中的LIMIT关键字中,执行分页查询操作。查询结果通过mysqli_fetch_all函数获取,并以PHP数组的形式返回给调用者。

2.4 分页展示页码

最后,我们需要将查询结果和对应的页码展示到前端页面上。对于页码展示,我们通常使用HTML的<ul><li>元素,将每一页的页码链接包装在<li>元素中,并使用<ul>元素将所有页码链接包裹起来。

rrreee

上述代码中,我们使用一个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.

2.3 Paging-Abfrage ausführen

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üsselwort LIMIT 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn