Novacreations

Desarollando Software

Mysql: Paginación de datos

Mysql es un manejador de base de datos que nos ofrecediversas opciones dentro de su sintaxis al momento de ejecutar operaciones de selecciónsobre nuestras bases de datos. Veremos rapidamente como generar páginas de datos.

Para este tutorial trabajaremos sobre una tabla llamadaalumnos con las columnas:

Imaginaremos que contamos con 5000 registros.

LIMIT

¿Que sucede si ejecutamos un query?

La consulta nos regresara un resultado con 5000 tuplas, locual, en la mayoría de los casos en que requerimos mostrar información, es unverdadero inconveniente.

Mysql cuanta con una cláusula llamada LIMIT, que actúa como unfiltro y como su nombre nos lo indicalimita el numero de datos regresados poniendo un máximo al numero de tuplas quese regresan al realizar la consulta.

La sintaxis:
limit {filas a visualizar}

Por ejemplo:

select * from alumnos limit 100;
Nos mostrara los primeros 100 registros, es decir de lamatricula 1 ala 100.

select * from alumnos where Carrera= ‘Sistemas’ limit 10;
Nos regresara los primeros 10 alumnos que están estudiandosistemas.

Como solo es un limite superior, no importa si existen menosdatos o ninguno.

¿Y que sucede con elresto de los datos?

Después de realizar la consulta de los primeros 100 alumnos,podemos querer obtener los siguientes 100
alumnos, para mostrar en diferentes páginasa los alumnos evitando así que el usuario tenga cientos o miles de datos en unasola pantalla y que se tarde mucho nuestra interfaz en desplegarlos.

Limit viene con la opción de ponerle un desplazamiento, elcual indica la tupla en donde comienza a obtener datos.

Sintaxis:
limit [depsplazamiento], filas

select * from alumnos limit 0,100;
Nos muestra los primeros 100 datos a partir del elemento 0,es decir el primero

select * from alumnos limit 100,100;
Nos muestra los primeros 100 datos a partir del elemento 100,es decir el 101

select * from alumnos limit 200,100;
Nos muestra los primeros 100 datos a partir del elemento 200,es decir el 201

select * from alumnos where carrera = ‘sistemas’ order bynombre limit 10,10;
Nos muestra los primeros 10 datos de los alumnos queestudian sistemas a partir del decimo, ordenados previamente por orden alfabético.Es decir que si 10 alumnos empiezan con A, y 10 con B, nos mostraran losalumnos que empiezan con la letra B.

En código, podríamos declarar una función query como:

[PHP]
function obtenerDatos($offset,$size)
{
$offset = $offset * $size;
$query = “select * from alumnos limit “.$offset.”,”.$size;
//Ejecutar query y regresar resultset
}

[JAVA]
public ResultSetobtenerDatos(int offset, int size)
{
offset = offset * size;
String query = “select * from alumnos limit “+offset+”,”+size;
//Ejecutar query y regresar resultset
}

Y enviarle como primer parámetro la página que deseamos, ycomo segundo el tamaño de dicha página. Por ejemplo página 1 con registros de100 seria obtenerDatos(1,100).

Antes podemos querer saber cuantas páginas podemos mostrar. Conel query:

select count(*) from alumno
Obtenemos el tamaño actual de la tabla (5000).

Por lo que podemos ahora obtener el numero total de páginas:

TotalDePaginas = NumeroTotalDeElementos / ElementosPorPagina
TotalDePaginas = 5000 / 100
TotalDePaginas = 50

Tenemos un total de 50 páginas. No olvides que si sale unnumero como 50.2 necesitaremos una página mas la cual no estará llena.

Ahora contamos con todo lo que necesitamos para implementar una interfaz con páginas de datos. El numero total de páginas, la cantidad de datosque nosotros o el usuario prefiere, y la función que obtiene los datos querequerimos.




Subscribe to email feed



La fábrica de softw

La Fábrica de Software de la Dirección de Innovación y ...

Administradores de A

Durante años aplicación ES File Explorer era la mejor y ...

Apoyo del Conacyt a

El Consejo Nacional de Ciencia y Tecnología (Conacyt), como parte ...

Microsoft Surface St

Esta semana Microsoft anuncio la existencia de su nueva PC ...

Incuba tu proyecto c

¡Buscamos nuevas tecnologías! Si tu proyecto es seleccionado Telcel te otorgará ...

Las 10 funciones de

  Java 8 incluye nueva funcionalidad que nos permite tener un ...

Como usar una funci

Usar una función hash para encriptar una contraseña no es ...

Cómo escribir códi

Nunca supongas a la malicia lo que puede ser explicado ...

Las 114 preguntas de

¿Tienes una entrevista de trabajo en puerta para un posición Java? ...

Believe in technolog

Ziff Davis Publishing es la más grande editorial de contenidos ...