Heim  >  Artikel  >  Backend-Entwicklung  >  Dinge, die Sie über PHP+MySQL-Paging wissen sollten

Dinge, die Sie über PHP+MySQL-Paging wissen sollten

不言
不言Original
2018-06-04 17:18:061708Durchsuche

Was Sie über PHP+MySQL-Paging wissen sollten. Dieser Artikel stellt hauptsächlich die PHP+MySQL-Paging-Technologie im Detail vor und bietet Ihnen ein vollständiges PHP-Paging-Beispiel

Wie das Sprichwort sagt , „Wenn Sie Ihre Arbeit gut machen wollen, müssen Sie zuerst Ihre Tools schärfen.“ Heute werden wir PHP verwenden, um Paging zu implementieren. Dann besteht unsere erste Aufgabe darin, eine PHP-Arbeitsumgebung aufzubauen.

Umgebungsvorbereitung

Beim Einsatz der PHP-Technologie ist AMP (Apache, MySQL, PHP) der beste Partner. Es gibt mittlerweile viele integrierte Umgebungen wie WAMP, XAMPP , phpnow und so weiter. Aber heute werde ich manuell eine PHP-Arbeitsumgebung erstellen.

Apache

Wir müssen zuerst den Apache-Server von der offiziellen Website von Apache herunterladen. Am besten laden Sie die MSI-Version herunter, denn dann können wir verschiedene Umgebungen konfigurieren, ohne sie manuell konfigurieren zu müssen.

Apache-Download-Adresse: eine MSI-Version von ApacheServer, die erste Wahl für den schnellen Aufbau einer PHP-Serverumgebung.

MySQL

MySQL, ein bekanntes Open-Source-Projekt in der Datenbankbranche, wurde jetzt von Oracle übernommen wissen, ob in Zukunft Gebühren anfallen werden. Aber im Moment ist MySQL die beste Wahl für die PHP-Entwicklung. Selbstverständlich finden Sie hier die Download-Adresse.

MySQL-Download-Adresse

Denken Sie während des Installationsvorgangs daran, sich den Benutzernamen und das Passwort zu merken.

PHP

Manche Leute sagen, dass PHP keine Sprache ist, sondern ein Framework, eine Client-Implementierung, die eine Verbindung zu MySQL herstellt. Ich habe sorgfältig darüber nachgedacht und es schien einen Sinn zu ergeben. Aber wenn man es so ausdrückt, gibt es viele Sprachen, die überhaupt keine Sprachen sind. Als ziviler Held sind die Fortschritte von PHP bekannt. Die Download-Adresse von PHP ist unten angehängt, sodass Sie nicht separat danach suchen müssen.

PHP-Download-Adresse: MSI-Version von PHP, Sie können PHP schnell erstellen, ohne die Umgebung manuell zu konfigurieren

Arbeitsumgebung

Wir haben es danach installiert Mit der oben genannten drei Software können Sie offiziell mit der Einrichtung der Umgebung beginnen. Im Moment müssen wir nur wissen, dass sich unser Arbeitsverzeichnis im htdocs-Ordner von Apache befindet und als virtuelles Verzeichnis von der Apache-Konfigurationsdatei verwaltet wird, mit der wir in Zukunft nach und nach in Kontakt kommen werden.

Denken Sie daran, dass es sich um den Ordner htdocs im Apache-Installationsverzeichnis handelt.

Datenbankvorbereitung

Obwohl die Umgebung eingerichtet wurde, muss das Paging durchgeführt werden. Zunächst müssen Daten vorhanden sein. „Für eine kluge Frau ist es schwer, eine Mahlzeit ohne Reis zuzubereiten.“ Als nächstes bereiten wir die Daten vor.

Datenbank erstellen

Datenbankanweisung erstellen Datenbank my_database_name erstellen
Hier verwenden wir MySQL, das mit dem geliefert wird Installation Die MySQL-Datenbank ist bereit. Es ist auch etwas einfacher.

Erstellen Sie eine Tabelle

Das Data Warehouse ist noch aufgebaut, jetzt müssen wir „Räume trennen“, wo die Daten werden gespeichert, Oberfläche.

create table table_name (···);
Ebenso verwenden wir hier aus Bequemlichkeitsgründen die integrierte Datenbanktabelle. Die Details sind wie folgt:

mysql> use mysql
Database changed
mysql> desc innodb_table_stats;
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
| Field   | Type  | Null | Key | Default  | Extra   |
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
| database_name  | varchar(64)  | NO | PRI | NULL  |    |
| table_name  | varchar(64)  | NO | PRI | NULL  |    |
| last_update  | timestamp  | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| n_rows   | bigint(20) unsigned | NO | | NULL  |    |
| clustered_index_size | bigint(20) unsigned | NO | | NULL  |    |
| sum_of_other_index_sizes | bigint(20) unsigned | NO | | NULL  |    |
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+

Vorgespeicherte Daten

Zur Vereinfachung der Demonstration müssen wir dies tun Einige Daten vorab speichern. Dabei spielt es keine Rolle, ob Sie den Batch-Import verwenden oder manuell hinzufügen. Der Kern ist immer noch

in Tabellenname(···) einfügen(···);

Zum Beispiel sind die von uns gespeicherten Daten wie folgt :

mysql> select * from innodb_table_stats;
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
| database_name | table_name | last_update  | n_rows | clustered_index_size | sum_of_other_index_sizes |
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
| fams  | admin  | 2016-07-19 14:47:02 | 3 |   1 |   0 |
| fams  | assets_in | 2016-07-14 14:42:44 | 2 |   1 |   3 |
| fams  | assets_out | 2016-07-14 20:14:31 | 4 |   1 |   3 |
| fams  | class  | 2016-07-14 14:36:02 | 3 |   1 |   0 |
| fams  | dog  | 2016-08-11 15:25:50 | 4 |   1 |   0 |
| fams  | fixed_assets | 2016-07-14 15:55:09 | 6 |   1 |   2 |
| fams  | sub_class | 2016-07-14 14:38:51 | 8 |   1 |   1 |
| fams  | user  | 2016-07-14 14:15:59 | 2 |   1 |   0 |
| mysql  | gtid_executed | 2016-07-14 12:50:25 | 0 |   1 |   0 |
| privilegesystem | privilege | 2016-08-08 08:56:21 | 3 |   1 |   0 |
| privilegesystem | role  | 2016-08-08 08:26:56 | 2 |   1 |   0 |
| privilegesystem | role_privilege | 2016-08-08 09:51:04 | 2 |   1 |   1 |
| privilegesystem | user  | 2016-08-08 11:07:35 | 2 |   1 |   0 |
| privilegesystem | user_role | 2016-08-08 11:08:15 | 2 |   1 |   2 |
| sys  | sys_config | 2016-07-14 12:50:30 | 6 |   1 |   0 |
| test  | datetest | 2016-07-19 10:02:38 | 2 |   1 |   0 |
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
16 rows in set (0.00 sec)

PHP-Erweiterungsvorbereitung

Wenn es sich um eine Nicht-MSI-Versionsinstallation handelt, müssen wir sie manuell aktivieren die PHP-Erweiterung, damit einige Funktionen von MySQL zum Betreiben der Datenbank verwendet werden können.

php.ini

Diese Datei befindet sich im PHP-Installationsverzeichnis. Wir müssen das Semikolon vor dem folgenden Code entfernen.

[PHP_MYSQL]
extension=php_mysql.dll
[PHP_MYSQLI]
extension=php_mysqli.dll

In der PHP-INI-Datei Kommentar ist;

Prinzip des Pagings

„Alles ist bereit, wir brauchen nur noch den Ostwind.“

Das ist die aktuelle Seite, Seitengröße und Gesamtzahl der Datensätze. Durch diese drei können wir die Gesamtzahl der Seiten anhand der Gesamtzahl der Datensätze und der Seitengröße berechnen. Implementieren Sie dann die entsprechende Anzeige basierend auf der aktuellen Seite.

Gesamtzahl der Datensätze

// 获取总的记录数
$sql_total_records = "select count(*) from innodb_table_stats";
$total_records_result = mysql_query($sql_total_records);
$total_records = mysql_fetch_row($total_records_result);
echo "总的记录数位: ".$total_records[0]."<br>";

Aktuelle Seite

// 通过GET方式获得客户端访问的页码
$current_page_number = isset($_GET[&#39;page_number&#39;])?$_GET[&#39;page_number&#39;]:1;
if($current_page_number<1) {
 $current_page_number =1;
}
if($current_page_number>$total_pages){
 $current_page_number = $total_pages;
}
echo "要访问的页码为:".$current_page_number;

Paging Core

// 获取到了要访问的页面以及页面大小,下面开始分页
$begin_position = ($current_page_number-1)*$page_size;
$sql = "select * from innodb_table_stats limit $begin_position,$page_size";
$result = mysql_query($sql);

Auf diese Weise können wir die gewünschte Ergebnismenge erhalten. Als nächstes geht es darum, wie man es auf der Seite anzeigt.

Seitenanzeige

// 处理结果集
echo "<table border=&#39;#CCF solid 1px&#39;><th>Mysql Fixed Assets Table</th>";
echo "<tr><td>DbName</td><td>TableName</td><td>Last_update</td><td>n_Nows</td><td>Clustered_Index_Size</td><td>Sum_od_Other_Index_sizes</td></tr>";
while(($row = mysql_fetch_row($result))){
 echo "<tr>";
 echo "<td>".$row[0]."</td>";
 echo "<td>".$row[1]."</td>";
 echo "<td>".$row[2]."</td>";
 echo "<td>".$row[3]."</td>";
 echo "<td>".$row[4]."</td>";
 echo "<td>".$row[5]."</td>";
 echo "</tr>";
}
echo "</table>";

// 循环显示总页数
?>
<?php
echo &#39;<a href="SlicePage.php?page_number=1">首页</a>  &#39;;
for($i=1;$i<=$total_pages;$i++){
 echo &#39;<a href="./SlicePage.php?page_number=&#39;.$i.&#39;">第&#39;.$i.&#39;页</a>  &#39;; 
}
echo &#39;<a href="SlicePage.php?page_number=&#39;.($current_page_number-1).&#39;">上一页</a>  &#39;;
echo &#39;<a href="SlicePage.php?page_number=&#39;.($current_page_number+1).&#39;">下一页</a>  &#39;;
echo &#39;<a href="SlicePage.php?page_number=&#39;.($total_pages).&#39;">尾页</a>  &#39;;

Paging-Implementierung

Nachdem wir den obigen Inhalt verstanden haben, werfen wir einen Blick auf diese vollständige Beispielleiste .

Code SlicePage.php


Die resultierende Startseite ist:

Dinge, die Sie über PHP+MySQL-Paging wissen sollten

Klicken Sie auf die Seitenzahl

Dinge, die Sie über PHP+MySQL-Paging wissen sollten

Nächste Seite

Dinge, die Sie über PHP+MySQL-Paging wissen sollten

Zusammenfassung

Paginierung ist sehr praktisch Technologie ist PHP im Vergleich zur Java-Implementierung immer noch sehr flexibel zu implementieren. Es befreit Menschen von der umständlichen objektorientierten Programmierung und kann den Menschen tatsächlich ein Gefühl von Schönheit vermitteln, wenn ihre Ideen klar sind.

Das obige ist der detaillierte Inhalt vonDinge, die Sie über PHP+MySQL-Paging wissen sollten. 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