English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai come leggere un numero limitato di record da un tavolo di database MySQL utilizzando PHP.
LIMITla clausola utilizzata per limitareSELECTIl numero di righe restituite dalla query. Questa funzione è molto utile per ottimizzare il tempo di caricamento delle pagine e migliorare la leggibilità del sito web. Ad esempio, è possibile utilizzare la paginazione per dividere un gran numero di record in più pagine, caricando un numero limitato di record da ogni pagina quando l'utente richiede la pagina tramite il link di paginazione.
La sintassi di base della clausola LIMIT può essere fornita nel modo seguente:
SELECT column_name(s) FROM table_name LIMIT row_offset, row_count;
La clausola LIMIT accetta uno o due parametri che devono essere numeri interi non negativi:
Quando vengono specificati due parametri, il primo parametro specifica il numero di offset della prima riga da restituire, ossia il punto di partenza, mentre il secondo parametro specifica il numero di righe da restituire. L'offset della prima riga è 0 (non 1).
Quando viene fornito un solo parametro, specifica il numero massimo di righe da restituire dall'inizio del set di risultati.
Ad esempio, per ottenere le prime tre righe, possiamo utilizzare la seguente query:
SELECT * FROM persons LIMIT 3;
Per ottenere le righe 2-4 del set di risultati, possiamo utilizzare la seguente query:
SELECT * FROM persons LIMIT 1, 3;
Usiamo la clausola LIMIT delle espressioni SELECT per eseguire una query SQL, quindi passiamola alla funzione PHP mysqli_query() per eseguire la query e ottenere un numero limitato di record.
+----+------------+-----------+----------------------+ | 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] | +----+------------+-----------+----------------------+
Il codice PHP nell'esempio seguente mostra solopersonsTre righe nella tabella.
<?php /*Prova a connettersi al server MySQL. Supponiamo che tu stia eseguendo MySQL. Server con impostazioni predefinite (utente senza password "root") */ $link = mysqli_connect("localhost", "root", "", "demo"); //Controlla la connessione if($link === false){ die("Errore: Impossibile connettersi." . 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>"; //Chiudi il set di risultati mysqli_free_result($result); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "Errore: Impossibile eseguire $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php /*Prova a connettersi al server MySQL. Supponiamo che tu stia eseguendo MySQL. Server con impostazioni predefinite (utente senza password "root") */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Controlla la connessione if($mysqli === false){ die("Errore: Impossibile connettersi." . $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 "Errore: Impossibile eseguire $sql." . $mysqli->error; } //关闭连接 $mysqli->close(); ?>
<?php /*Prova a connettersi al server MySQL. Supponiamo che tu stia eseguendo MySQL. Server con impostazioni predefinite (utente senza password "root") */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //Impostare il modello di errore PDO su eccezione $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("Errore: Impossibile connettersi." . $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] | +----+------------+-----------+----------------------+