De nuevo esperando que me ayudeis con otro atasco.
Tengo un script para paginar resultados, todo funciona correctamente excepto en los links de las paginas (anterior 1 2 3 4 5 ..... siguiente).
Siempre en la primera página me muestra el numero de páginas igual al valor de registros a mostrar por página de la variable ($tamPag). En el resto de paginas se comporta correctamente.
Por ejemplo, ahora $tampag=20 teniendo 25 registros, debería mostrar "1 2 siguiente" pues muestra "1 2 3 4 ....... 19 20 siguiente " pero solo en la primera página, si pulso a la 2 o siguiente ya muestra lo correcto.
Espero que me ayudéis a encontrar el error.
gracias.
Código PHP:
//elementos para el orden
if(!isset($orden))
{
$orden="username";
}
//fin elementos de orden
//calculo de elementos para paginacion
//registros por pagina
$tamPag=20;
//pagina actual si no esta definida y limites
if(!isset($pagina)){
$pagina=1;
$inicio=1;
$final=$tamPag;
}
//calculo del limite inferior
$limitInf=($pagina-1)*$tamPag;
//calculo del numero de paginas
$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;
if($pagina<$numPags){
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}
}
//fin de calculo
////////
// INSERTO DATOS
////////
//Links de paginas a mostrar
if($pagina>1){
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."'>";
echo "<font face='verdana' size='-2'>anterior</font>";
echo "</a> ";
}
for($i=$inicio;$i<=$final;$i++){
if($i==$pagina){
echo "<font face='verdana' size='-2'><b>".$i."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."'>";
echo "<font face='verdana' size='-2'>".$i."</font></a> ";
}
}
if($pagina<$numPags){
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";
}
//fin de la paginacion