Hay infinidad de códigos en este foro y en internet de como hacer una paginación real, porque con tu código van apareciendo paginas conforme se avanza, que tal si quiero ir directamente a la ultima o penúltima página? con tu código no se podría porque tu sistema nunca sabe realmente cuantas páginas se van a generar, lo que le hace falta a tu código es saber el numero exacto de registros a mostrar y luego eso dividir entre el numero de items a mostrar por página, así obtienes el numero total de páginas reales con items que mostrar por lo tanto puedes poner links para ir desde la primer página hasta la ultima...
Código PHP:
Ver original<?php
$pag = isset($_GET['pag']) ?
$_GET['pag'] : 1;
$pdo = new PDO($driver,$user,$pass);
$query = $pdo->prepare('SELECT COUNT(*) FROM mitabla');
$query->execute();
$totalReg = $query->fetchColumn();
$itemsXPag = 5;
$totalPag = ceil($totalReg / $itemsXPag); $itemsInicio = $itemsXPag * ($pag - 1);
$query = $pdo->prepare('SELECT * FROM mitabla LIMIT :inicio, :limite');
$query->bindParam(':inicio',$itemsInicio);
$query->bindParam(':limite',$itemsXPag);
$query->execute();
$registros = $query->fetchAll();
//link anterior...
for($i=1; $i<=$totalPag; $i++) {
if ($pag == $i) {
echo '<strong>'.$i.'</strong>';
}else {
echo '<a href="'.$_SERVER['PHP_SELFT'].'?pag='.$i.'">'.$i.'</a>';
}
}
//link siguiente...