English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico PHP

Tutorial Avanzado PHP

PHP & MySQL

Manual de Referencia PHP

LIMIT en MySQL con PHP

En este tutorial, aprenderá a leer un número limitado de registros de una tabla en una base de datos MySQL utilizando PHP.

limitar el conjunto de resultados

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.

Ejemplo: método orientado a procedimientos

<?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);
?>

Ejemplo: método orientado a objetos

<?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();
?>

Ejemplo: método PDO

<?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]   |
+----+------------+-----------+----------------------+