English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderá a leer un número limitado de registros de una tabla en una base de datos MySQL utilizando PHP.
LIMITLa cláusula se utiliza paraSELECTEl número de filas devueltas por la sentencia. Esta función es muy útil para optimizar el tiempo de carga de la página y mejorar la legibilidad del sitio web. Por ejemplo, puede usar la paginación para dividir grandes cantidades de registros en múltiples páginas, y cuando el usuario solicita una página específica haciendo clic en los enlaces de paginación, se cargará un número limitado de registros de cada página de la base de datos.
La sintaxis básica de la cláusula LIMIT se puede expresar de la siguiente manera:
SELECT column_name(s) FROM table_name LIMIT row_offset, row_count;
La cláusula LIMIT acepta uno o dos parámetros que deben ser enteros no negativos:
Cuando se especifican dos parámetros, el primer parámetro especifica el desplazamiento del primer renglón a devolver, es decir, el punto de partida, mientras que el segundo parámetro especifica el número de filas a devolver. El desplazamiento del primer renglón es 0 (no1).
Cuando se proporciona un solo parámetro, especifica el número máximo de filas a devolver desde el principio del conjunto de resultados.
Por ejemplo, para recuperar las tres primeras filas, puede usar la siguiente consulta:
SELECT * FROM persons LIMIT 3;
Para recuperar el conjunto de resultados en el2-4filas (con), puede usar la siguiente consulta:
SELECT * FROM persons LIMIT 1, 3;
Vamos a usar la cláusula LIMIT en la sentencia SELECT para realizar una consulta SQL, luego ejecutar esta consulta pasándola al función mysqli_query() de PHP para obtener un número limitado de registros. Considere la siguiente tabla persons en la base de demostración de datos:
+----+------------+-----------+----------------------+ | 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] | +----+------------+-----------+----------------------+
El código PHP en los siguientes ejemplos solo muestrapersonsTres filas en la tabla.
<?php /*Intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL. Servidor con configuración predeterminada (usuario sin contraseña "root") */ $link = mysqli_connect("localhost", "root", "", "demo"); //Revisar conexión if($link === false){ die("Error: no se puede conectar. " . mysqli_connect_error()); } //Intentar seleccionar la ejecución de la consulta $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>"; //Cerrar conjunto de resultados mysqli_free_result($result); } else{ echo "No se encontraron registros que coincidan con su consulta."; } } else{ echo "Error: no se puede ejecutar $sql. " . mysqli_error($link); } //Cerrar conexión mysqli_close($link); ?>
<?php /*Intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL. Servidor con configuración predeterminada (usuario sin contraseña "root") */ $mysqli = new mysqli("localhost", "root", "", "demo"); //Revisar conexión if($mysqli === false){ die("Error: no se puede conectar. " . $mysqli->connect_error); } //Intentar seleccionar la ejecución de la consulta $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>"; //Liberar conjunto de resultados $result->free(); } else{ echo "No se encontraron registros que coincidan con su consulta."; } } else{ echo "Error: no se puede ejecutar $sql. " . $mysqli->error; } //Cerrar conexión $mysqli->close(); ?>
<?php /*Intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL. Servidor con configuración predeterminada (usuario sin contraseña "root") */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", \ //Establecer el modo de error PDO en excepción $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("Error: No se puede conectar. " . $e->getMessage()); } //Intentar seleccionar la ejecución de la consulta 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>"; //Liberar conjunto de resultados unset($result); } else{ echo "No se encontraron registros que coincidan con su consulta."; } } catch(PDOException $e){ die("Error: No se puede ejecutar $sql. " . $e->getMessage()); } //Cerrar conexión unset($pdo); ?>
Después de limitar el conjunto de resultados, la salida será como se muestra a continuación:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | +----+------------+-----------+----------------------+