67- Limit Data en MySql con php




Limitar la cantidad de datos recuperados en MySQL con MySQLi y PDO

En bases de datos grandes, obtener demasiados registros en una consulta SELECT puede afectar el rendimiento. Para evitarlo, MySQL ofrece la cláusula LIMIT, que permite restringir la cantidad de registros devueltos.

Su sintaxis básica es:

SELECT columna1, columna2 FROM nombre_tabla LIMIT cantidad;

Por ejemplo, para obtener solo los primeros 10 registros:

SELECT * FROM Orders LIMIT 10;

También podemos usar OFFSET para definir desde qué posición empezar a recuperar datos. Por ejemplo, para obtener los registros del 11 al 20:

SELECT * FROM Orders LIMIT 10 OFFSET 10;

Otra forma de escribirlo en MySQL es:

SELECT * FROM Orders LIMIT 10, 10;

Veamos cómo aplicarlo en MySQLi y PDO.

Limitar datos con MySQLi (Orientado a Objetos)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, nombre, apellido FROM MyGuests LIMIT 2";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo "ID: " . $row["id"]. " - Nombre: " . $row["nombre"]. " " . $row["apellido"]. "
"; } } else { echo "0 resultados"; } $conn->close(); ?>



Limitar datos con MySQLi (Procedural)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, nombre, apellido FROM MyGuests LIMIT 3";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {
    echo "ID: " . $row["id"]. " - Nombre: " . $row["nombre"]. " " . $row["apellido"]. "
"; } } else { echo "0 resultados"; } mysqli_close($conn); ?>



Limitar datos con PDO


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $stmt = $conn->prepare("SELECT id, nombre, apellido FROM MyGuests LIMIT :limite OFFSET :offset");
  $limite = 2;
  $offset = 1;
  $stmt->bindParam(':limite', $limite, PDO::PARAM_INT);
  $stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
  $stmt->execute();

  $result = $stmt->fetchAll();
  foreach($result as $row) {
    echo "ID: " . $row["id"]. " - Nombre: " . $row["nombre"]. " " . $row["apellido"]. "
"; } } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } $conn = null; ?>



Ejemplo de Tabla con Datos Limitados

ID Nombre Apellido
1 Juan Pérez
2 María Gómez



Publicar un comentario

0 Comentarios