Hola,
Es cuestion de matematicas. Tu calculas el numero total de paginas con:
Código PHP:
$pages = intval($total_records / $cantidad);
que lo que hace es eliminar los decimales.
Luego el bucle de paginas las haces desde 0 hasta $pages. En total estas mostrando $pages + 1 enlaces. La solucion para paginar solo de uno en uno seria cambiar la condicion del bucle, para que de una iteracion menos.
Pero entonces tendrias problemas con las paginaciones de mas de un registro por pagina.
Yo cambiaria la forma de calcular el numero total de paginas por:
Código PHP:
$pages = ceil($total_records / $cantidad);
y cambiaria el for por:
Código PHP:
for ($i = 0; $i<$pages; $i++)
Saludos.