English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous apprendrez à lire un nombre limité d'enregistrements à partir d'une table de base de données MySQL en utilisant PHP.
LIMITLa clause est utilisée pour limiterSELECTLe nombre de lignes retournées par la phrase. Cette fonction est très utile pour optimiser le temps de chargement de la page et améliorer la lisibilité du site. Par exemple, vous pouvez utiliser la pagination pour diviser un grand nombre d'enregistrements en plusieurs pages, et lorsque l'utilisateur clique sur le lien de pagination pour demander cette page, un nombre limité d'enregistrements sera chargé à partir de chaque page de la base de données.
La syntaxe de base de la clause LIMIT peut être donnée de la manière suivante :
SELECT column_name(s) FROM table_name LIMIT row_offset, row_count;
La clause LIMIT accepte un ou deux paramètres qui doivent être des entiers non négatifs :
Lorsque deux paramètres sont spécifiés, le premier paramètre spécifie le décalage du premier enregistrement à retourner, c'est-à-dire le point de départ, tandis que le second paramètre spécifie le nombre de lignes à retourner. Le décalage de la première ligne est 0 (pas1)
Lorsque seul un paramètre est fourni, il spécifie le nombre maximum de lignes à retourner à partir du début du jeu de résultats.
Par exemple, pour récupérer les trois premières lignes, vous pouvez utiliser la requête suivante :
SELECT * FROM persons LIMIT 3;
Pour récupérer le résultat du jeu de données du2-4Lignes (compris), vous pouvez utiliser la requête suivante :
SELECT * FROM persons LIMIT 1, 3;
Utilisons la clause LIMIT de la requête SELECT pour effectuer une requête SQL, puis pour l'exécuter, transmettez-la à la fonction mysqli_query() PHP pour obtenir un nombre limité d'enregistrements. Considérez la table persons du démonstration base de données suivante :
+----+------------+-----------+----------------------+ | 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] | +----+------------+-----------+----------------------+
Le code PHP ci-dessous montre simplementpersonsTrois lignes dans la table.
<?php /*Essayer de se connecter au serveur MySQL. Supposons que vous exécutez MySQL. Serveur avec paramètres par défaut (utilisateur sans mot de passe "root") */ $link = mysqli_connect("localhost", "root", "", "demo"); //Vérifier la connexion if($link === false){ die("Erreur : impossible de se connecter. " . mysqli_connect_error()); } //Essayez de choisir l'exécution de la requête $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>"; //Fermer le jeu de résultats mysqli_free_result($result); } else{ echo "Aucun enregistrement correspondant à votre requête trouvé."; } } else{ echo "Erreur : impossible d'exécuter $sql. " . mysqli_error($link); } //Fermez la connexion mysqli_close($link); ?>
<?php /*Essayer de se connecter au serveur MySQL. Supposons que vous exécutez MySQL. Serveur avec paramètres par défaut (utilisateur sans mot de passe "root") */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Vérifier la connexion if($mysqli === false){ die("Erreur : impossible de se connecter. " . $mysqli->connect_error); } //Essayez de choisir l'exécution de la requête $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>"; //Libérez le jeu de résultats $result->free(); } else{ echo "Aucun enregistrement correspondant à votre requête trouvé."; } } else{ echo "Erreur : impossible d'exécuter $sql. " . $mysqli->error; } //Fermez la connexion $mysqli->close(); ?>
<?php /*Essayer de se connecter au serveur MySQL. Supposons que vous exécutez MySQL. Serveur avec paramètres par défaut (utilisateur sans mot de passe "root") */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", \ //Définissez le mode d'erreur PDO sur les exceptions $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("Erreur : Impossible de se connecter. " . $e->getMessage()); } //Essayez de choisir l'exécution de la requête 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>"; //Libérez le jeu de résultats unset($result); } else{ echo "Aucun enregistrement correspondant à votre requête trouvé."; } } catch(PDOException $e){ die("Erreur : Impossible d'exécuter $sql. " . $e->getMessage()); } //Fermez la connexion unset($pdo); ?>
Après la limitation du jeu de résultats, la sortie sera comme suit :
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | +----+------------+-----------+----------------------+