Heim > Backend-Entwicklung > PHP-Tutorial > Prinzipien und Schritte zur Implementierung von Paging in PHP

Prinzipien und Schritte zur Implementierung von Paging in PHP

王林
Freigeben: 2023-04-07 11:24:01
Original
8206 Leute haben es durchsucht

Prinzipien und Schritte zur Implementierung von Paging in PHP

1. Kapselungskonfigurationsinformationen

1. Wir können eine Konfigurationsdatei config.php erstellen. Legen Sie alle Konfigurationen fest, die als Konstanten verwendet werden müssen:

<?php
//数据库服务器
define(&#39;DB_HOST&#39;, &#39;localhost&#39;);
//数据库用户名
define(&#39;DB_USER&#39;, &#39;root&#39;);
//数据库密码
define(&#39;DB_PWD&#39;, &#39;secret&#39;);
//库名
define(&#39;DB_NAME&#39;, &#39;book&#39;);
//字符集
define(&#39;DB_CHARSET&#39;, &#39;utf8&#39;);
Nach dem Login kopieren

2. Wir extrahieren die Seite „connection.php“. Sie müssen nur die Datei „connection.php“ einbinden.

Der Code lautet wie folgt:

<?php
include &#39;config.php&#39;;$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME);
if (mysqli_errno($conn))
 {  mysqli_error($conn);
    exit;
  }
mysqli_set_charset($conn, DB_CHARSET);
?>
Nach dem Login kopieren

Wir können die Datenbankverbindung realisieren, indem wir die Datei „connection.php“ künftig direkt in jede Datei einbinden:

include &#39;connection.php&#39;;
Nach dem Login kopieren

2. Paging zur Implementierung anzeigen

Seite zum Implementieren von Paging enthält die folgenden Grundelemente:

Prinzipien und Schritte zur Implementierung von Paging in PHP

Wir haben die Kontrolle Wenn es um Seitenzahlen geht, wird die Kontrolle der Seitenzahlen dadurch erreicht, dass der Seitenzahlwert in die URL-Adressleiste eingegeben wird. Durch Anhängen der seitenzahlbezogenen Informationen an page.php können wir effektivere Informationen berechnen. Der Effekt der URL-Steuerung des Paging ist wie folgt:

Prinzipien und Schritte zur Implementierung von Paging in PHP

In der Code-Implementierung werden diese beiden Werte tatsächlich durch den Offset (Offset) und die Menge ( Anzahl) nach dem Paging-Limit.

limit offset , num
Nach dem Login kopieren

Prinzipien und Schritte zur Implementierung von Paging in PHP

Angenommen, 5 Elemente werden pro Seite angezeigt. Die endgültige Kontrollgrenzenformel für Paging lautet wie folgt:

offset的值为 (n-1)*5
num 为规定的5
Nach dem Login kopieren


1 Erforderliche Parameter für das Paging

1-1, Gesamtzahl

通过查询user表的count(id),得到总数$count。
$count_sql = &#39;select count(id) as c from user&#39;;
$result = mysqli_query($conn, $count_sql);
$data = mysqli_fetch_assoc($result);
//得到总的用户数
$count = $data[&#39;c&#39;];
Nach dem Login kopieren

1-2, aktuelle Seite

beim ersten Betreten der Seite .php-Seite, die URL lautet http://www.php.com/page.php, und dahinter steht keine Seitenidentifikationsnummer ?page=1.

Wir müssen also manuell eine Seitenidentifikationsnummer erstellen und diese an die aktuelle Seitenzahlvariable $page übergeben.

Wir befürchten, dass die vom Benutzer übergebene Seite Dezimalstellen enthält, daher führen wir eine erzwungene Typkonvertierung durch: (int) $_GET['page'].

Die erste Schreibweise:

$page = isset($_GET[&#39;page&#39;]) ? (int) $_GET[&#39;page&#39;] : 1;
Nach dem Login kopieren

Die zweite Schreibweise:

if (isset($_GET[&#39;page&#39;])) {
    $page = (int) $_GET[&#39;page&#39;];
} else {
    $page = 1;
}
Nach dem Login kopieren

1-3, die letzte Seite

Jede Seite muss eine Ganzzahl sein. Genau wie Mathe in der Grundschule. Im Durchschnitt sollten 5,6 Personen wie viele Äpfel zubereiten. Die Antwort muss 6 sein.

Wenn die Seite 20,3 Seiten umfasst, muss die Rundungsfunktion ceil verwendet werden. Lassen Sie die Nummerierung 21 werden.

Wir dividieren die Gesamtzahl durch die Anzahl der auf jeder Seite angezeigten Datenelemente, um die Gesamtzahl der Seiten zu erhalten.

//每页显示数
$num = 5;
$total = ceil($count / $num);
Nach dem Login kopieren

1-4. Kontrolle abnormaler Situationen auf oberen und unteren Seiten

Was soll ich tun, wenn der Benutzer auf der ersten Seite auf die vorherige Seite klickt und auf die nächste Seite klickt? die letzte Seite?

In diesem Fall überschreiten die Daten den Bereich, sodass beim Paginieren keine Daten angezeigt werden.

Diese ungewöhnliche Situation muss natürlich berücksichtigt werden. Wenn daher die erste Seite beim Paging um eins subtrahiert wird, machen wir sie zur ersten Seite.

Wenn wir eine zur letzten Seite hinzufügen, machen wir sie zur letzten Seite, wodurch die Ausnahmekontrolle abgeschlossen ist.

if ($page <= 1) {
    $page = 1;
}
if ($page >= $total) {
    $page = $total;
}
Nach dem Login kopieren


2. SQL-Anweisung

Wir haben zuvor gesagt, dass der Kern des Paging darin besteht, die Anzahl der Anzeigen pro Seite durch den Offset und die Anzahl zu steuern SQL-Anweisung.

$num = 5;
$offset = ($page - 1) * $num;
Nach dem Login kopieren

Wir wenden $num und $offset auf die SQL-Anweisung an:

$sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num";
Nach dem Login kopieren

Kontrollieren Sie den Paging-Wert im URI

echo &#39;<tr>
    <td colspan="5">
    <a href="page.php?page=1">首页</a>
    <a href="page.php?page=&#39; . ($page - 1) . &#39;">上一页</a>
    <a href="page.php?page=&#39; . ($page + 1) . &#39;">下一页</a>
    <a href="page.php?page=&#39; . $total . &#39;">尾页</a>
    当前是第 &#39; . $page . &#39;页  共&#39; . $total . &#39;页
    </td>
    </tr>&#39;;
Nach dem Login kopieren

4. Gesamtcode-Implementierung

include &#39;connection.php&#39;;
$count_sql = 'select count(id) as c from user';
$result = mysqli_query($conn, $count_sql);
$data = mysqli_fetch_assoc($result);
//得到总的用户数
$count = $data['c'];
$page = isset($_GET[&#39;page&#39;]) ? (int) $_GET[&#39;page&#39;] : 1;
/*
if (isset($_GET[&#39;page&#39;])) {
    $page = (int) $_GET[&#39;page&#39;];
} else {
    $page = 1;
}
 */
 
//每页显示数
$num = 5;
//得到总页数
$total = ceil($count / $num);
if ($page <= 1) {
    $page = 1;
}
if ($page >= $total) {
    $page = $total;
}
$offset = ($page - 1) * $num;
$sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num";
$result = mysqli_query($conn, $sql);
if ($result && mysqli_num_rows($result)) {
    //存在数据则循环将数据显示出来
    echo '';
    while ($row = mysqli_fetch_assoc($result)) {
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
        echo '';
    }
    echo '';
    echo '
' . $row['username'] . '' . date('Y-m-d H:i:s', $row['createtime']) . '' . long2ip($row['createip']) . '编辑用户删除用户
首页 上一页 下一页 尾页 当前是第 ' . $page . '页 共' . $total . '页
'; } else { echo '没有数据'; } mysqli_close($conn);
Nach dem Login kopieren

Der obige Inhalt implementiert eine einfache Paging-Funktion. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPrinzipien und Schritte zur Implementierung von Paging in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage