Como hacer una paginacion limitada

  • Autor Autor Farok
  • Fecha de inicio Fecha de inicio
F

Farok

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas ando haciendo paginaciones para una pagina web y el problema es k me suelta todos los números de todas las paginas que hay pero yo quiero que suelte por ejemplo 5 y que a medida que el usuario vaya avanzando se vayan cargando otras 5 y quiten las 5 anteriores
724d105a3b73670de73655320fc816a9.webp
y quiero que quede algo como esto:
b16a3faddd9f606dec913835ca93d3e2.webp
este es mi codigo
PHP:
function pagina_actual(){
	return isset($_GET['p']) ? (int)$_GET['p'] : 1;
};
//Funciones de obtener post
function obtener_post($conexion){
	$inicio = (pagina_actual() > 1) ? pagina_actual() * 1 - 1 : 0;
	$temp = $conexion->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM entradas ORDER BY id DESC LIMIT $inicio, 1" );
	$temp->execute();
	return $temp->fetchAll();
};
//Funciones de paginación
function numero_paginas($conexion){
	$total_post = $conexion -> prepare('SELECT FOUND_ROWS() as total');
	$total_post->execute();
	$total_post = $total_post->fetch()['total'];

	$numero_paginas = ceil($total_post / 1);
	return $numero_paginas;
};
y aqui donde lo aplico
PHP:
<div class="paginacion">
		<ul>
			<?php $numero_paginas = numero_paginas($conexion); ?>
			<?php if (pagina_actual() === 1): ?>
				<li class="disabled">&laquo;</li>
			<?php else: ?>
			<li><a href="index.php?p=<?php echo pagina_actual()-1 ?>">&laquo;</a></li>
			<?php endif; ?>

			
			<?php for($i = 1; $i <= $numero_paginas; $i++): ?>
			<?php if (pagina_actual() === $i): ?>
				<li><?php echo $i ?></li>
			<?php else: ?>
				<li><a href="index.php?p=<?php echo $i ?>"><?php echo $i ?></a></li>
			<?php endif; ?>
			<?php endfor; ?>



			<?php if (pagina_actual() == $numero_paginas): ?>
				<li class="disabled">&raquo;</li>
			<?php else: ?>
			<li><a href="index.php?p=<?php echo pagina_actual()+1 ?>">&raquo;</a></li>
			<?php endif; ?>
 
Atrás
Arriba