Heim  >  Artikel  >  Backend-Entwicklung  >  So paginieren Sie in PHP

So paginieren Sie in PHP

王林
王林Original
2019-09-21 17:56:492729Durchsuche

So paginieren Sie in PHP

Wenn auf einer Website zu viel Inhalt auf der Listenseite vorhanden ist, wird normalerweise die Paging-Funktion eingerichtet. Heute werden wir das Paging-Prinzip untersuchen und diese Funktion anhand eines kleinen Falls implementieren .

Seitenprinzip

Seitenanzeige, die aus der MySQL-Datenbank entnommenen Daten werden in regulären Abschnitten angezeigt und das Limit in der SQL-Anweisung wird verwendet, um sie zu binden Startdaten zur Anzahl der Seiten Ermitteln und Abrufen von Daten aus der Datenbank basierend auf der Anzahl der Seiten.

Zum Beispiel: Nehmen wir an, dass der Name der Datenbanktabelle list ist und von jeder Seite 10 Informationen abgerufen werden

第1页    select * from list limit 0,10;
第2页   select * from list limit 10,10;
第3页   select * from list limit 20,10;
由此观之第n页 是select * from list limit (n-1)*10,10;

Auf diese Weise erhalten wir eine Formel, die die Anzahl der Seiten verwendet Daten abrufen:

select * from list limit ($page-1)*$pagesize,$pagesize; $page是当前的页数,$pagesize是每页取得条数

Erforderliche Wissenspunkte
1. Grundlegende Datenbankbetriebsfunktionen

1.1, mysqli_connect(); , zum Beispiel $link = mysqli_connect('127.0.0.1 ','root',12345678,'bbs');

1.2. Zum Beispiel $res = mysqli_query($link ,„select * from list“); Der zweite Parameter ist sql Statement

1.3, mysqli_num_rows(): Überprüfen Sie, wie viele Daten erhalten wurden, z 🎜>

1.4, mysqli_fetch_assoc() oder mysqli_fetch_row(): Konzentrieren Sie sich auf das Abrufen eines Datenelements und rufen Sie jeweils nur ein Datenelement ab. Nach dem Abrufen zeigt der Zeiger auf das nächste Datenelement. Beispielsweise verfügt mysqli_fetch_assoc($res) zusätzlich zu fetch_assoc über fetch_row und fetch_array

1.5, limit wird zum Betreiben von Daten in der Datenbank verwendet, limit ist die Startposition und die Anzahl der Operationen beträgt z Beispiel: Abrufen von Zahlen aus der Datenbank, Auswahl * aus Listenlimit 10,10 ;

2. Weitere verwandte Kenntnisse

2.1 $_SERVER['REQUEST_URI']获取当前页面的url 
例如https://i.cnblogs.com/EditPosts.aspx?opt=1的url为/EditPosts.aspx?opt=1 
2.2 parse_url():解析url,返回url的各个组成部分,如果不写第二个参数,返回的数组中可能的键有以下几种:
    scheme - 如 http,
    host
    port
    user
    pass
    path
    query - 在问号 ? 之后
    fragment - 在散列符号 # 之后

Implementierungsprozess:

1. Rufen Sie die aktuelle URL-Zeichenfolge ab und analysieren Sie sie mit parse_url, um das URL-Array abzurufen.

2. Stellen Sie eine Verbindung zum Server her und rufen Sie die Inhaltssammlung ab, auf der sie angezeigt werden soll Zählen Sie auf der Listenseite die Gesamtzahl der angezeigten Elemente und berechnen Sie dann die Gesamtzahl der Inhaltsseiten

3. Bestimmen Sie, ob die Seite übermittelt wird. Wenn nicht, wird standardmäßig die erste Seite $pageval

4. Weisen Sie der Variablen $page die berechnete Grenzanfangsposition zu

5. Verwenden Sie $page und $ pageSize, um Daten abzurufen

6. Durchlaufen Sie die Daten Sammlung bequem, und die Ausgabe wird auf der Seite angezeigt

Spezifischer Code:

$url = $_SERVER['REQUEST_URI'];
$url = parse_url($url);
$url = $url['path'];
$pageSize = 4;//连接服务器$link = mysqli_connect('127.0.0.1','root',12345678,'bbs');
$res = mysqli_query($link,'select * from fenye');
$num = mysqli_num_rows($res);
$pageNum = ceil($num/$pageSize);//判断页面是否是提交状态if ( isset($_GET['page']) && $_GET['page'] >1) {
    $pageVal = $_GET['page'];
}else {
    $pageVal = 1;
}//计算起始位置$page = ($pageVal-1)*$pageSize;//去数据库取数据$res = $mysqli_query($link,"select * from fenye limit $page,$pageSize");//如果$res有值,则循环便利结果展示输出在页面if ($res) {    while( $row = mysqli_fetch_assoc($res) ) {    echo $row[&#39;name&#39;]. &#39;|&#39;.$row[&#39;age&#39;].&#39;<br/>&#39;;
    }
}//html添加页数部分<a href="?page=1">1</a>;
<a href="?page=2">2</a>;
<a href="?page=3">3</a>;
<a href="?page=4">4</a>;
<a href="?page=5">5</a>;
总共<?php echo $pageNum; ?>页,当前在<?php echo $pageVal;?>页

Empfohlenes Tutorial:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo paginieren Sie in PHP. 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