Foros del Web » Programando para Internet » PHP »

como limitar el numero de paginas

Estas en el tema de como limitar el numero de paginas en el foro de PHP en Foros del Web. buenas tardes. tengo un proyecto de una galeria de fotos con su respectiva categoria. el producto tiene 40 registros (dependiendo si puede aumentar). el numerado ...
  #1 (permalink)  
Antiguo 19/11/2010, 13:42
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Pregunta como limitar el numero de paginas

buenas tardes. tengo un proyecto de una galeria de fotos con su respectiva categoria. el producto tiene 40 registros (dependiendo si puede aumentar).

el numerado de paginacion lo hago con un bucle y comparo si la variable pagina que inicia es igual al contador del bucle.

en este caso me muestra del 1 al 6 (dependiendo del numero de registros). pero yo quiero que me muestre del 1 al 4. osea cuando le doy siguiente, que aparezca la paginacion 5, 6, 7, 8 y asi sucesivamente.

asi como este ejemplo.

1 2 3 4 > >>
5 6 7 8 > >>

este es mi codigo qu hago la paginacion.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $mostrar = 5; //Registros a mostrar
  4. $pagina = $_GET["pagina"];
  5. if (!isset($pagina)) {
  6.     $inicio = 0;
  7.     $pagina = 1;
  8. }
  9. else
  10.     $inicio = ($pagina - 1) * $mostrar;
  11.  
  12.  
  13. $sql = "SELECT idproducto FROM producto";
  14. $rpta = mysql_query($sql) or die(mysql_error());
  15. $reg_totales = mysql_num_rows($rpta);
  16.  
  17. #Segunda consulta para saber cuantos registros hay.
  18. $resultado    = "SELECT idproducto FROM producto LIMIT $inicio, $mostrar";                         
  19. $rs_resultado = mysql_query($resultado) or die(mysql_error()); 
  20. $pag_totales = ceil($reg_totales / $mostrar);      
  21.  
  22. if($reg_totales) {
  23.                                    
  24. #Primer registro de todos: Ir al primero
  25. if($pagina!=1)
  26. echo "<a href='pagina.php?pagina=1&url_categoria=".$_GET['url_categoria']."' class='previous'> <img src=\"images/previous.png\" border=\"0\" /> </a>";
  27.  
  28. if(($pagina - 1) > 0) {
  29.  
  30. #bucle para la numeracion de la pagina.
  31. for ($i=1; $i<=$pag_totales; $i++)
  32. {
  33.     if ($pagina == $i)
  34.     {
  35. ?>
  36. <a class='sel' href = 'javascript:void(0);'><?php echo $pagina; ?></a>
  37. <?php
  38.     } else {
  39. ?>
  40. <a href="pagina.php?pagina=<?php echo $i; ?>" ><?php echo $i; ?></a>
  41. <?php
  42.  
  43.     }  
  44. }
  45.  
  46. if(($pagina + 1)<=$pag_totales)
  47. {
  48. ?>
  49. <a href="pagina.php?pagina=<?php echo ($pagina+1); ?>" class="previous"> <img src="images/snext.png" border="0" /> </a>
  50. <?php
  51.  
  52. }
  53.  
  54. //Ir al ultimo registro
  55. if($pagina<=($pag_totales-1))
  56.  echo "<a href='pagina.php?pagina=".($pag_totales)."' class=\"sprevious\"> <img src=\"images/next.png\" border=\"0\" /> </a>";     
  57.  
  58. }
  59.  
  60. }
  61.  
  62. ?>

saludos.

Última edición por esaenz22; 19/11/2010 a las 14:34 Razón: correccion.
  #2 (permalink)  
Antiguo 19/11/2010, 14:52
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: como limitar el numero de paginas

En el enlace tienes un ejemplo de paginador, con lo que tu dices.

Paginador

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #3 (permalink)  
Antiguo 19/11/2010, 15:38
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: como limitar el numero de paginas

tienes que poner el limit a 4 en esta parte del codigo:

Código PHP:


<?php
$mostrar 
4//Registros a mostrar
  #4 (permalink)  
Antiguo 19/11/2010, 16:15
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: como limitar el numero de paginas

gracias por las respuestas. he revisado el paginator que publico portalmana y no me alcanza el tiempo para revisarlo ya que debo entregar el proyecto cuanto antes.

gordot, le puse en la variable mostrar a 4 y aun asi no me cambia la paginacion.

ya estoy con la cabeza quemada.

saludos.
  #5 (permalink)  
Antiguo 19/11/2010, 16:59
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: como limitar el numero de paginas

Mas o menos el código con el paginador seria...
No lo pude probar....

Código PHP:
Ver original
  1. <?php
  2. require_once 'Paginador.php';
  3. // Cantidad de Registros por Pagina
  4. $mostrar        = 5;
  5.  
  6. // Extraigo la Cantidad de Registros que hay para mostrar
  7. $sql            = "SELECT idproducto FROM producto";
  8. $rpta           = mysql_query($sql) or die(mysql_error());
  9. $cantRegistros  = mysql_num_rows($rpta);
  10. // Veo en que pagina nos paramos
  11. $pgnActual      = isset($_GET['pagina'])? $_GET['pagina'] : 0;
  12.  
  13. // Instanciamos la Clase Paginador
  14. $paginador      = new Paginador(5, 4);
  15. $datos          = $paginador->paginar($pgnActual, $cantRegistros);
  16.  
  17. // Preguntamos si retorno algo, si retorno paginamos con los datos que nos da el
  18. // paginador que es un arreglo.
  19. // Para ver que trae la variable hacer var_dump($datos);
  20. if ($datos) {
  21.     echo 'Pagina: ' . ($pgnActual + 1) . ' de ' . $paginador->getCantidadPaginas() . '<br />';
  22.     foreach ($datos as $enlace) {
  23.     ?>
  24.     <a href="?pagina=<?php echo $enlace['numero']; ?>" title="<?php echo $enlace['title']; ?>" style="text-decoration:none;"><?php echo $enlace['vista']; ?></a>
  25.     <?php
  26.     }
  27. }
Como veo que pones imágenes en las paginas siguiente, ultima y de ese tipo, en este caso lo puedes lograr con lo siguiente...
Código PHP:
Ver original
  1. $paginador      ->setTitulosVista('siguiente', "<img src=\"images/next.png\" border=\"0\" />");
esto va entre la instancia y antes de llamar a paginar...

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #6 (permalink)  
Antiguo 19/11/2010, 18:14
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: como limitar el numero de paginas

yo uso el mismo paginador, pero no encuentro el problema, te adjunto el mio que funciona bien y haces los cambios:

Código PHP:

$registros 
4;
$pagina $_GET["pagina"];

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros





$sql "SELECT idproducto FROM producto";

$rpta mysql_query($sql) or die(mysql_error());

$reg_totales mysql_num_rows($rpta);
 

Segunda consulta para saber cuantos registros hay.

resultado    "SELECT idproducto FROM producto LIMIT $inicio, $mostrar";                         

$rs_resultado mysql_query($resultado) or die(mysql_error()); 

$pag_totales ceil($reg_totales $mostrar);


mysql_free_result($resultados);        
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='pagina.php?pagina=".($pagina-1)."' style='border:1px solid #ccc;padding:3px;'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i) {
                echo 
"<b style='border:1px solid #ccc;padding:3px;'>".$pagina."</b> "
            } else {
                echo 
"<a href='pagina.php?pagina=$i' style='border:1px solid #ccc;padding:3px;'>$i</a> "
            }    
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='pagina.php?pagina=".($pagina+1)."' style='border:1px solid #ccc;padding:3px;'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }

?> 
dime como te fue
saludos
  #7 (permalink)  
Antiguo 19/11/2010, 20:50
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: como limitar el numero de paginas

gracias por las respuestas muchachos. voy a probar el codigo y les digo como me fue.

edito. parece que no entendio mi consulta.

yo muestro las paginas de 4 en 4. cuando ennumero la pagina, me debe mostrar de esta manera.

1 2 3 4 > >>
<< < 5 6 7 8 > >>

intente con el paginador de jpinedo. me resulta bien, pero cuando voy a la ultima pagina, no me muestra la descripciones del producto y lo extraño es que el ultimo registro aumenta de valor.

este es codigo que hice del jpinedo.

Código PHP:
Ver original
  1. $_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;
  2. $_pagi_sqlLim = " LIMIT $_pagi_inicial,$_pagi_cuantos";                                                      
  3. $sql_galeria_muebles   = "SELECT gi.idmueble, gi.imagen_mueble, gi.imagen_mueble_thb, gi.foto1, gi.foto2,
  4. c.idcategoria, c.url_categoria
  5. FROM kh_galeria_imagenes gi, kh_categorias c
  6. WHERE gi.idcategoria = c.idcategoria
  7. AND c.url_categoria = '".$_GET['url_categoria']."'
  8. ORDER BY gi.idmueble ASC ".$_pagi_sqlLim."";

saludos.

Última edición por esaenz22; 19/11/2010 a las 22:14 Razón: correccion.

Etiquetas: limitar, numero
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 16:41.