Tecnología

Inicio

PHP MySQL Tutorial paginación

Paginar resultados de MySQL con PHP tiene una serie de beneficios. En primer lugar, se acelera la consulta MySQL, ya que sólo devuelve un pequeño número de resultados. En segundo lugar, mejora la experiencia del usuario, ya que muestra un número manejable de resultados por página. En tercer lugar, se ahorra ancho de banda al no enviar los resultados no sean necesarios. Por estas razones, muchos sitios, como Google, Yahoo y WordPress, han adoptado su uso. Para usar MySQL paginación, es necesario utilizar el comando SQL "LIMIT" y los parámetros "GET" en la URL.

Instrucciones

1 Crear una tabla de "agenda" en su base de datos MySQL con las columnas "ID", "Nombre" y "teléfono". Rellenar la tabla con unas pocas entradas. Aquí están las consultas SQL para crear y llenar la tabla, respectivamente:

CREAR TABLA agenda ( id int (11) NOT NULL AUTO_INCREMENT, name varchar (100) NOT NULL, telephone varchar (20) NOT NULL, PRIMARY KEY ( id ));

Insertar en agenda ( name , telephone ) VALUES ( 'Jack', '201-379-5406'), ( 'Jake', '331-123-5196'), ( 'John', '222-342-3250') ;

2 Crear un nuevo archivo "pagination.php" y abrirlo con un editor de texto como el Bloc de notas. Escribir un segmento de código que se conecta a su servidor MySQL, usando la función "mysql_connect" de PHP, y selecciona la base de datos que contiene la tabla "agenda", utilizando la función "mysql_select_db" de PHP. Aquí hay un ejemplo:

mysql_connect ( "localhost", "admin", "contraseña");

mysql_select_db ( "test");

Reemplazar las cuatro cuerdas con su nombre de host, nombre de usuario, contraseña y base de datos, respectivamente.

3 Escribir un segmento de código que establece la variable "$ rowsPerPage" al número de filas que se muestran por página, establece "$ currentPage" a la página solicitada a través de "$ _GET [" página "]" o cero si ninguno y conjuntos " $ compensar "a la de desplazamiento para recuperar filas de la base de datos, se calcula restando uno" $ currentPage "y multiplicando por" $ rowsPerPage ". Aquí hay un ejemplo:

$ RowsPerPage = 5;

$ CurrentPage = ((isset ($ _ GET [ 'page']) && $ _GET [ "página"]> 0) (int) $ _ GET [ 'page']: 1);

$ Offset = ($ currentPage-1) * $ rowsPerPage;

4 Escribir una línea de código que recupera filas "$ rowsPerPage" a partir del desfase fijado en "$ desplazamiento" de la "agenda" de mesa mediante la ejecución de una consulta "SELECT" a través de la función "mysql_query" de PHP y guarda el resultado en una nueva variable. Aquí está el código:

$ Resultado = mysql_query ( "SELECT * FROM LÍMITE agenda '$ compensar', '$ rowsPerPage...);

5 Escribir un bucle "while" que recupera las filas de conjunto de resultados de la consulta, "$ resultado", utilizando la función "mysql_fetch_assoc" de PHP y los muestra como una lista o tabla. Aquí hay un ejemplo:

echo '<table> <tr> <th> ID </ th> <th> Nombre </ th> <th> Número de teléfono </ th> </ tr>';

while ($ fila = mysql_fetch_assoc ($ resultado)) {

echo '<tr> <td>'. $ Fila [ 'id']. '</ Td> <td>'. $ Fila [ 'nombre']. '</ Td> <td>'. $ Fila [ 'teléfono']. '</ Td> </ tr>';

}

echo '</ table>';

6 Escribir un segmento de código que recupera el número de entradas en la tabla mediante la ejecución de una consulta "COUNT" a través de la función "mysql_query" de PHP, calcula el número de páginas dividiendo el número de entradas por el "$ rowsPerPage" variable y redondeando hacia arriba y guarda el resultado en una variable "$ totalPages." Aquí está el código:

$ Resultado = mysql_query ( "SELECT COUNT (*) AS contar de agenda ');

$ Fila = mysql_fetch_assoc ($ resultado);

$ TotalPages = ceil ($ fila [ 'count'] / $ rowsPerPage);

7 Escribe dos "if": uno que muestra una "Página Anterior" enlace y uno que muestra un enlace "Página siguiente", si existe la página respectiva (es decir, si "$ currentPage" es mayor que uno para "Página anterior" y si "$ currentPage" es mayor que "$ totalPages" para "Página siguiente"). Aquí está el código:

if ($ currentPage> 1) {

echo '<a href="pagination.php?page=' ($currentPage-1)'"> Anterior </a>..';

}

if ($ currentPage <$ totalPages) {

echo '.. <a href="pagination.php?page=' ($currentPage+1)'"> siguiente </a>';

}