Curso de PHP y MySQL | Paginación con PHP y MySQL

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Paginar 1

<?php
include "../conexion.php";	
/*el primer parámetro es el registro en el que empezamos y el segundo es el incremento de paginación*/
$sql = "SELECT * FROM jugador LIMIT 0,20";
$result = mysqli_query($conexionFutbol, $sql)
or die("error en la consulta");

while($row = mysqli_fetch_assoc($result)){
    echo $row['nombre']."</br>";
}
?>
paginar con PHP | Pablo Monteserín

Consulta de los registros de una base de datos MySQL utilizando PHP

"; } ?>

Paginar II – ejercicio

Recojer como parámetro de la URL la página a la que voy y a partir de ella, poner en la consulta el registro a partir del cual comienzo a leer.

Cada página tendrá veinte registros.

Ejercicio – Añadir tres enlaces que nos permitirán paginar.

<a href="index.php?pag=0">Página 1</a>
paginar en PHP con enlaces| Pablo Monteserín

Paginación con PHP

Cada vez que pulsamos un enlace veremos 20 registros

"; } ?> Pagina 1 Pagina 2 Pagina 3

Ejercicio – Generar enlaces paginación

Utilizando el bucle for y la siguiente consulta, generar los enlaces de paginación.

SELECT count(*) AS 'num_reg' FROM jugador
paginar en PHP con enlaces | Pablo Monteserín

Paginación con PHP

Sin límite de enlaces de paginación

"; } $sql = "SELECT count(*) AS 'num_reg' FROM jugador"; $result = mysqli_query($conexionFutbol, $sql); $row = mysqli_fetch_assoc($result); $ultimoReg = $row["num_reg"]; for($pag=0; $pag<=$ultimoReg/$incrementoPaginación; $pag++){ echo 'Pagina '.($pag+1).''; } ?>

Ejercicio mostrar sólo 10 enlaces

Mostrar sólo 10 enlaces, con centro en la página en la que estoy.

[getres class="video_premium" urlRecurso="229109436" anchorText="Ver Video"]

Nota:

Nos puede resultar útil usar esta línea de código:

$pagInicial = ($pag<5)?0:$pag-5;
paginar en PHP | Pablo Monteserín

Ejemplo de paginación con PHP y MySQL

"; } $sql = "SELECT count(*) AS 'num_reg' FROM jugador"; $result = mysqli_query($conexionFutbol, $sql); $ultimoReg = mysqli_fetch_array($result)[0]; $numPags = round($ultimoReg/$incrementoPaginación); /*for($pag = ($pag-5<0)?0:$pag; $pag<=($pag+5>$numPags)?$numPags:$pag+5; $pag++){ echo 'Pagina '.($pag+1).''; }*/ $pagInicial = ($pag<5)?0:$pag-5; $pagFinal = ($pagInicial+9>$numPags)?$numPags:$pagInicial+9; for($pag = $pagInicial; $pag<=$pagFinal; $pag++){ echo 'Pagina '.($pag+1).''; } ?>

Ejercicio – siempre 10

Al resolver el ejercicio anterior, si voy a la última página se me mostrarán 5 enlaces en lugar de diez. Hacer los ajustes necesarios para que se vean diez enlaces.

$pagInicial = ($pag<5)?0:$pag-5;
if($pagInicial+10>$numPags){
	$pagFinal = $numPags;
	$pagInicial = $numPags-10;
}else{
	$pagFinal = $pagInicial+10;
}
paginación avanzada con PHP | Pablo Monteserín

Paginación de registros con PHP

"; } $sql = "SELECT count(*) AS 'num_reg' FROM jugador"; $result = mysqli_query($conexionFutbol, $sql); $ultimoReg = mysqli_fetch_array($result)[0]; $numPags = round($ultimoReg/$incrementoPaginación); /*for($pag = ($pag-5<0)?0:$pag; $pag<=($pag+5>$numPags)?$numPags:$pag+5; $pag++){ echo 'Pagina '.($pag+1).''; }*/ $pagInicial = ($pag<5)?0:$pag-5; if($pagInicial+10>$numPags){ $pagFinal = $numPags; $pagInicial = $numPags-10; }else{ $pagFinal = $pagInicial+10; } for($pag = $pagInicial; $pag<=$pagFinal; $pag++){ echo 'Pagina '.($pag+1).''; } ?>

Ejercicio Optimización paginación

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM jugador LIMIT $registroAlQueVoy,$incrementoPaginacion";
$result = mysqli_query($conexionFutbol, $sql) or die("error en la consulta 1");


$sql2 = "SELECT FOUND_ROWS() AS 'num_reg'";
$result2 = mysqli_query($conexionFutbol, $sql2);
paginar en PHP utilizando FOUND_ROUNDS de SQL

Paginación en PHP consultando una base de datos MySQL

"; } $sql = "SELECT FOUND_ROWS() 'num_reg'"; $result = mysqli_query($conexionFutbol, $sql); $row = mysqli_fetch_assoc($result); $ultimoReg = $row["num_reg"]; $numPags = $ultimoReg/$incrementoPaginación; /*for($pag = ($paginaALaQueVoy-5<0)?0:$paginaALaQueVoy; $pag<=($paginaALaQueVoy+5>$numPags)?$numPags:$paginaALaQueVoy+5; $pag++){ echo 'Pagina '.($pag+1).''; }*/ $pagInicial = ($paginaALaQueVoy-5<0)?0:$paginaALaQueVoy-5; $pagFinal = ($pagInicial+9>$numPags)?$numPags:$pagInicial+9; for($pag = $pagInicial; $pag<=$pagFinal; $pag++){ echo 'Pagina '.($pag+1).''; } ?>

Ejercicio: resaltar página actual

paginar en PHP resaltando la página actual

Paginación con PHP de los registros de una base de datos MySQL

"; } $sql = "SELECT FOUND_ROWS() 'num_reg'"; $result = mysqli_query($conexionFutbol, $sql); $row = mysqli_fetch_assoc($result); $ultimoReg = $row["num_reg"]; $numPags = $ultimoReg/$incrementoPaginación; /*for($pag = ($paginaALaQueVoy-5<0)?0:$paginaALaQueVoy; $pag<=($paginaALaQueVoy+5>$numPags)?$numPags:$paginaALaQueVoy+5; $pag++){ echo 'Pagina '.($pag+1).''; }*/ $pagInicial = ($paginaALaQueVoy-5<0)?0:$paginaALaQueVoy-5; $pagFinal = ($pagInicial+9>$numPags)?$numPags:$pagInicial+9; $anterior = $paginaALaQueVoy-1; $siguiente = $paginaALaQueVoy+1; for($pag = $pagInicial; $pag<=$pagFinal; $pag++){ if($pag == $paginaALaQueVoy){ echo 'Pagina '.($pag+1).''; }else{ echo 'Pagina '.($pag+1).''; } } ?>

Ejercicio – Añadir los botones anterior y siguiente, que paginan una vez hacia delante o una vez hacia detrás, según el caso

paginar en PHP con botón de anterior y siguiente

Ejemplo de paginación haciendo consultas a una base de datos MySQL utilizando la instrucción SQL SQL_CALC_FOUND_ROWS

"; } $sql = "SELECT FOUND_ROWS() 'num_reg'"; $result = mysqli_query($conexionFutbol, $sql); $row = mysqli_fetch_assoc($result); $ultimoReg = $row["num_reg"]; $numPags = $ultimoReg/$incrementoPaginación; /*for($pag = ($paginaALaQueVoy-5<0)?0:$paginaALaQueVoy; $pag<=($paginaALaQueVoy+5>$numPags)?$numPags:$paginaALaQueVoy+5; $pag++){ echo 'Pagina '.($pag+1).''; }*/ $pagInicial = ($paginaALaQueVoy-5<0)?0:$paginaALaQueVoy-5; $pagFinal = ($pagInicial+9>$numPags)?$numPags:$pagInicial+9; $anterior = $paginaALaQueVoy-1; $siguiente = $paginaALaQueVoy+1; for($pag = $pagInicial; $pag<=$pagFinal; $pag++){ if($pag == $paginaALaQueVoy){ echo 'Pagina '.($pag+1).''; }else{ echo 'Pagina '.($pag+1).''; } } echo "
"; echo "Anterior - "; echo "Siguiente"; ?>

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.