Paginación PHP

Subodh Poudel 30 enero 2023
  1. Utilice la cláusula LIMIT con la instrucción SELECT en SQL para paginar las filas en PHP
  2. Agregue la función de navegación Previous y Next en la paginación en PHP
Paginación PHP

Este artículo presentará un método para realizar la paginación en PHP usando la cláusula LIMIT con la instrucción SELECT en SQL. Usaremos la cláusula LIMIT para seleccionar el número específico de filas a partir de un índice en particular para mostrarlas como paginación.

También demostraremos otro método para agregar la función de navegación Previous y Next en la paginación PHP. Este método solo agrega la función adicional para navegar por las páginas correspondientes al primer método.

Utilice la cláusula LIMIT con la instrucción SELECT en SQL para paginar las filas en PHP

Podemos usar la cláusula LIMIT con la declaración SELECT para especificar los primeros n resultados que se mostrarán en una página. Podemos proporcionar el número de página en la etiqueta anchor como método GET para navegar por las páginas. En este método, definimos el número de filas que se mostrarán por página y recuperamos todas las filas de la base de datos para calcular el número total de páginas necesarias. Podemos usar el array $_GET con la función isset() para obtener el número de página solicitado por el usuario.

Por ejemplo, cree una variable $results_per_page y almacene 2 en ella. Utilice la función mysqli_num_rows() para encontrar el número de filas en la base de datos y almacenar en la variable $number_of_results. Utilice la función ceil() para determinar el número total de páginas necesarias para mostrar las filas. Divida la variable $number_of_results por la variable $results_per_page dentro de la función ceil(). Utilice la variable superglobal $_GET con la función isset() para comprobar si se ha establecido la variable page. Si no se ha configurado, configure la variable page en 1. Si se ha establecido la variable, asigne el valor a la variable $page. Reste la variable page por 1 y multiplíquela por la variable $this_page_first_result. Almacene la operación en la variable $this_page_first_result. Escriba una declaración SQL con la cláusula ## Utilice la cláusula LIMIT con la instrucción SELECT en SQL para paginar las filas en PHP. Ejecute la consulta y muestre los resultados. Al final, cree un bucle for para recorrer la variable page y $number_of_page. Dentro del bucle, haga e echo e la etiqueta anchor y escriba el valor del atributo href como index.php?page'.$page. Entre las etiquetas anchor escriba la variable page.

En el siguiente ejemplo, la tabla alpha de la base de datos contiene seis filas. Después de realizar la paginación, se muestran dos filas por página. La función ceil() determina el número total de páginas necesarias para mostrar las filas. Inicialmente, la variable $page no está establecida, por lo que la página comienza desde la página 1. La variable $this_page_first_result determina el número de página en el que se encuentra el usuario. Las variables $this_page_first_result denotan la primera fila de la página. La variable $results_per_page denota el número de resultados por página. La sección de salida muestra la página index.php. Cuando se hace clic en la página 2, genera las siguientes dos filas de la base de datos.

Código de ejemplo:

#php 7.x
<?php
$number_of_pages = ceil($number_of_results/$results_per_page);
if (!isset($_GET['page'])) {
    $page = 1;
} else {
    $page = $_GET['page'];
}
$this_page_first_result = ($page-1)*$results_per_page;
$sql='SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
    echo $row['id'] . ' ' . $row['value']. '<br>';
}
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
?>

Producción :

1 A 
2 B 
1 2 3

Agregue la función de navegación Previous y Next en la paginación en PHP

Podemos agregar algunos fragmentos de código adicionales al ejemplo de código en el primer método para proporcionar la función de navegación Previous y Next en la paginación. Podemos incrementar y disminuir la variable $page en 1 para apuntar a la página anterior y siguiente. Podemos usar las variables incrementadas y decrementadas en la etiqueta anchor para lograr las características Next y Previous.

Por ejemplo, cree dos variables, $prev y $next. Reste la variable $page con uno y asigne la operación a la variable $prev. Del mismo modo, agregue uno a la variable $page y asígnelo a la variable $next. Haga eco de una etiqueta anchor que diga Previous justo antes del bucle for de los números de página. Escriba el valor index.php?page=' . $prev . en el atributo href de la etiqueta anchor. De la misma manera, cree otra etiqueta anchor para Next utilizando la variable $next como valor de page en el atributo href.

En la sección de salida a continuación, muestra la segunda página. Al hacer clic en Previous lleva a la primera página y hace clic en Next, lo lleva a la tercera página.

Código de ejemplo:

# php 7.x
<?php
$prev = $page -1;
$next = $page +1;
echo ' <a href="index.php?page=' . $prev . '"> Previous </a> ';
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
echo ' <a href="index.php?page=' . $next . '"> Next </a> ';
?>

Producción :

3 C 
4 D 
Previous 1 2 3 Next
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn