Foros del Web » Programando para Internet » PHP »

Paginación PHP - PostgreSQL

Estas en el tema de Paginación PHP - PostgreSQL en el foro de PHP en Foros del Web. Buena tarde a todos, he leido y buscado lo suficiente sobre paginación, más no he encontrado un script que se adapte a lo que quiero ...
  #1 (permalink)  
Antiguo 01/02/2011, 14:52
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años
Puntos: 2
De acuerdo Paginación PHP - PostgreSQL

Buena tarde a todos, he leido y buscado lo suficiente sobre paginación, más no he encontrado un script que se adapte a lo que quiero y que sea lo suficientemente claro como para implementarlo en MVC, por lo cual tome la decisión de crear mi propio script para esto (actualmente lo tengo sin MVC), ya está funcional y trae los registros de 5 en 5, el único inconveniente es que no he podido encontrar una manera de limitar la cantidad de número de enlaces a mostrar antes y después del número de página (de la barra de paginación, pues actualmente tengo 80 registros por lo cual se me visualizan 16 enlaces esto sale de 80/5, más necesito que solo se vean máximo 9 enlaces, el link de la página en que estoy, 4 antes y 4 después) en la cual estoy ¿comprenden ó no soy claro?, a continuación pegó mi código para que lo puedan entender y si son tan amables me puedan ayudar a establecer estos dos límites, pues es lo único que me falta, ya que vuelvo y repito el código está funcional y no tiene errores en su funcionamiento, por lo cual no es necesario corregirlo, sino más bien extenderlo un poco.

<?php
$cantidadRegistros = $cantidadFilas->fetch();
$anterior=$_GET["valorOffset"]-5;
$siguiente=$_GET["valorOffset"]+5;
echo "Total de registros ".$cantidadRegistros['cantidad']."<br>";
if($_GET['valorOffset']>1)
{
echo "<a href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&valorOffset=0' >Primera</a> ";
echo "<a href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&valorOffset=$a nterior'>Anterior</a> ";
}

for($i=1;$i<=(ceil($cantidadRegistros['cantidad']/5));$i++)
{
$valorOffset=($i-1)*5;
echo "<a href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&valorOffset=$v alorOffset'>$i</a> ";
$valorOffsetFinal=$valorOffset;
}

if(($cantidadRegistros['cantidad']-$_GET['valorOffset'])>5)
{
echo "<a href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&valorOffset=$v alorOffsetFinal'>&Uacute;ltima</a> ";
echo "<a href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&valorOffset=$s iguiente'>Siguiente</a>";
}
?>


De antemano muchas gracias por su ayuda y atención.
  #2 (permalink)  
Antiguo 05/02/2011, 13:45
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años
Puntos: 2
Desacuerdo Respuesta: Paginación PHP - PostgreSQL

Ya resolví el problema, pego el código de la parte del condicional encargado de hacer lo que necesitaba (es decir el interior del búcle), por si alguno de ustedes lo pudiera necesitar:

for($i=1;$i<=(ceil($cantidadRegistros['cantidad']/5));$i++)
{
if (($paginaActual>$i) && ($i>=($paginaActual-5))) {//Número de enlaces a mostrar antes del de la página actual
?>

<a class='navigation navthis nav' href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&offset=<?ph p echo ($i-1)*5; ?>&paginaActual=<?php echo $i ?>&campo=<?php echo $campo ?>&valor=<?php echo $valor ?>&order=<?php echo $order ?>'><?php echo $i ?></a>

<?php
}

if ($paginaActual==$i) {
echo "$i";
}

if (($paginaActual<$i) && ($i<=($paginaActual+5))) {//Número de enlaces a mostrar luego del de la página actual
?>

<a class='navigation navthis nav' href='?controlador=FormularioActividadesEconomicas &accion=listarActividadesEconomicas&offset=<?ph p echo ($i-1)*5; ?>&paginaActual=<?php echo $i ?>&campo=<?php echo $campo ?>&valor=<?php echo $valor ?>&order=<?php echo $order ?>'><?php echo $i ?></a>

<?php
}
}

Etiquetas: postgresql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:58.