Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2008, 16:26
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Fallo en paginación

Hola,

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>&nbsp;";
}

for(
$i=$inicio;$i<=$final;$i++){
   if(
$i==$pagina){
      echo 
"<font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
   }else{
   echo 
"<a class='p'  href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."'>";
   echo 
"<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
   }
}

if(
$pagina<$numPags){
   echo 
"&nbsp;<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