English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden Sie lernen, wie Sie mit PHP begrenzte Anzahl von Zeilen aus einer MySQL-Datenbanktabelle lesen.
LIMITDie Klausel wird verwendet, umSELECTDie von dem Statement zurückgegebenen Zeilenanzahl. Diese Funktion ist sehr nützlich für die Optimierung der Ladezeiten der Seiten und die Verbesserung der Lesbarkeit der Website. Zum Beispiel können Sie die Paginierung verwenden, um eine große Anzahl von Zeilen in mehrere Seiten zu gliedern, und wenn der Benutzer eine Seite durch Klicken auf einen Paginierungslink anfordert, werden nur eine begrenzte Anzahl von Zeilen aus jeder Seite der Datenbank geladen.
Die Grundgrammatik der LIMIT Klausel kann wie folgt gegeben werden:
SELECT column_name(s) FROM table_name LIMIT row_offset, row_count;
Die LIMIT Klausel akzeptiert einen oder zwei Parameter, die beide nichtnegative Ganzzahlen sein müssen:
Wenn zwei Parameter angegeben werden, bestimmt der erste Parameter den Abstand der ersten zu returnenden Zeile, also den Ausgangspunkt, und der zweite Parameter die Anzahl der zu returnierenden Zeilen. Der Abstand der ersten Zeile ist 0 (nicht1)。
Wenn nur ein Parameter angegeben wird, bestimmt er die maximale Anzahl von Zeilen, die von der Anfangsposition des Ergebnissatzes zurückgegeben werden.
Beispielsweise können Sie die folgenden Abfragen verwenden, um die ersten drei Zeilen zu检索:
SELECT * FROM persons LIMIT 3;
Um die Zeile des Ergebnissatzes zu检索2-4Reihen (inklusive), Sie können die folgenden Abfragen verwenden:
SELECT * FROM persons LIMIT 1, 3;
Lassen Sie uns die LIMIT Klausel in der SELECT-Anweisung verwenden, um eine SQL-Abfrage durchzuführen und diese Abfrage durch Übergeben an die PHP mysqli_query() Funktion auszuführen, um eine begrenzte Anzahl von Zeilen zu erhalten. Betrachten Sie die folgende persons Tabelle in der Demonstrationsdatenbank:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+----------------------+
Das PHP-Code-Beispiel unten zeigt nurpersonsDrei Zeilen in der Tabelle.
<?php /*Versuchen Sie, eine Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $link = mysqli_connect("localhost", "root", "", "demo"); //Verbindung überprüfen if($link === false){ die("Fehler: Verbindung kann nicht hergestellt werden. " . mysqli_connect_error()); } //尝试选择查询执行 $sql = "SELECT * FROM persons LIMIT 3"; if($result = mysqli_query($link, $sql)){ if(mysqli_num_rows($result) > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //Ergebnisset schließen mysqli_free_result($result); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "Fehler: Es kann keine Ausführung von $sql durchführt werden. " . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php /*Versuchen Sie, eine Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Verbindung überprüfen if($mysqli === false){ die("Fehler: Verbindung kann nicht hergestellt werden. " . $mysqli->connect_error); } //尝试选择查询执行 $sql = "SELECT * FROM persons LIMIT 3"; if($result = $mysqli->query($sql)){ if($result->num_rows > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch_array()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //释放结果集 $result->free(); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "Fehler: Es kann keine Ausführung von $sql durchführt werden. " . $mysqli->error; } //关闭连接 $mysqli->close(); ?>
<?php /*Versuchen Sie, eine Verbindung zum MySQL-Server herzustellen. Angenommen, Sie führen MySQL aus. Server mit Standardeinstellungen (Benutzer "root" ohne Passwort) */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "); //PDO Fehlermodus auf Ausnahme setzen $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("错误:无法连接。 " . $e->getMessage()); } //尝试选择查询执行 try{ $sql = "SELECT * FROM persons LIMIT 3"; $result = $pdo->query($sql); if($result->rowCount() > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch()){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //释放结果集 unset($result); } else{ echo "找不到与您的查询匹配的记录。"; } } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } //关闭连接 unset($pdo); ?>
限制结果集后,输出将如下所示:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | +----+------------+-----------+----------------------+