Foros del Web » Programando para Internet » PHP »

Paginacion sin 0

Estas en el tema de Paginacion sin 0 en el foro de PHP en Foros del Web. Hola, no sabia como hacer una paginacion y busqué en internet y lo adapté. Lo que hace es mostrar un link "anterior" dps la cantidad ...
  #1 (permalink)  
Antiguo 17/01/2008, 08:46
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Paginacion sin 0

Hola, no sabia como hacer una paginacion y busqué en internet y lo adapté. Lo que hace es mostrar un link "anterior" dps la cantidad de paginas con links y "siguiente". Pero la primera pagina me la muestra como "0" y no me gusta, ya que cero no tiene valor para mi, como va a ver una pagina 0 ¿?¿?, tendria que ser pagina "1".


Por ej. asi me lo muestra:

< Anterior 0 1 2 3 Siguiente >

Este es el script

Código PHP:
if (isset($_SESSION['s_username'])) {
include("config_usuarios.php");
$sesion = $_SESSION['s_username'];

//Configuracion
$cantidad = 9;

//Calculo
if (!isset($pg)) { $pg = 0; }
$inicial = $pg * $cantidad;


//Consulta general
$sql_gen = "SELECT * FROM imagenes WHERE username = '$sesion'";
$cons_gen = mysql_db_query($dbname,$sql_gen) or die (mysql_error());
$total_registros = mysql_num_rows($cons_gen);
$cant_paginas = intval($total_registros / $cantidad);

//Consulta acotada
$sql_acot= "SELECT * FROM imagenes WHERE username = '$sesion' ORDER BY id DESC LIMIT $inicial,$cantidad";
$cons_acot = mysql_db_query($dbname,$sql_acot) or die (mysql_error());

?>
<table align="center" width="1" border="0" cellspacing="50" cellpadding="0"><tr>
<?
//Impresion del listado
while ($array mysql_fetch_array($cons_acot))
{
if (
$contador == 3) {
            echo 
"</tr><tr>";
            
$contador 0;
        }
        
$contador++;
        echo 
'<td width="100"><a href="'.$array[imagen].'" target="_blank"><img width="150" height="150" src="'.$array[imagen].'"></a></td>';
    }

echo 
"</tr></table><br><br>";


//Impresion - Creacion de enlaces de paginacion
echo "<center><p>";
if (
$pg <>0)
{
$guia $pg 1;
echo 
"<font><a href='album.php?pg=".$guia."'>&laquo; Anterior</a>&nbsp;</font>";
}
else {
echo 
" ";
}
for (
$i 0$i<($cant_paginas 1); $i++) {
if (
$i == $pg) {
echo 
"<font><b>&nbsp;$i&nbsp;</b></font>";
}
else {
echo 
"<font><a href='album.php?pg=".$i."'>".$i."</a>&nbsp;</font>";
}
}
if (
$pg $cant_paginas) {
$guia$pg 1;
echo 
"<font><a href='album.php?pg=".$guia."'>Siguiente &raquo;</a></font>";
}
else {
echo 
" ";
}
echo 
"</p></center>";
echo 
"<br><br><a href='index.php'>Volver</a>";
Donde dice: $pag = 0 los cambié por 1 pero no sirve.
  #2 (permalink)  
Antiguo 17/01/2008, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Paginacion sin 0

En tu ciclo empieza a contar desde 1 hasta cantidad de paginas + 2, y cuando hagas tu select recuerda restarle 1 a la pagina para que sirva igual.

Saludos.
  #3 (permalink)  
Antiguo 17/01/2008, 10:25
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Paginacion sin 0

Hola:

También en esta línea:
Código PHP:
$cant_paginas intval($total_registros $cantidad); 
Usa:
Código PHP:
$cant_paginas ceil($total_registros $cantidad); 
Saludos
  #4 (permalink)  
Antiguo 17/01/2008, 13:05
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Paginacion sin 0

jpinedo hice lo que tu me dijiste pero no funciona, me aparece:

< Anterior 0 1

Y el 1 esta seleccionado, es decir, me mandó a la pagina 1 no hay imagenes, ya que tengo subida 1 sola y si me voy a 0 allí está.

Y GatorV, disculpa pero no te entiendo.


Desde ya gracias
  #5 (permalink)  
Antiguo 17/01/2008, 15:04
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Paginacion sin 0

Cita:
Y GatorV, disculpa pero no te entiendo.
Es que ahí está el problema. Lo que yo te puse tenía que ir junto conlo de GatorV.
  #6 (permalink)  
Antiguo 17/01/2008, 15:18
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Paginacion sin 0

Algo así:
Código PHP:
$cant_paginas ceil($_pagi_totalReg $_pagi_cuantos);

//...

if ($pg != 1){
    
$guia $pg 1;
    echo 
"<font><a href='album.php?pg=".$guia."'>&laquo; Anterior</a></font>";


for (
1$i <= $cant_paginas$i++){
    echo 
"<font><a href='album.php?pg=".$i."'> ".$i."</a></font>";
}

if (
$pg $cant_paginas) {
    
$guia$pg 1;
    echo 
"<font><a href='album.php?pg=".$guia."'> Siguiente &raquo;</a></font>";

Saludos
  #7 (permalink)  
Antiguo 18/01/2008, 09:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Paginacion sin 0

Mmmm se entendi... pero sigue sin funcionar :S

Cuando entro al album me muestra abajo esto:

< Anterior 1 2 3 Siguiente >

Pero estoy en la pagina 0, no en la 1, ya que si hago clic en el 1 me muestra otras 9 imágenes.
  #8 (permalink)  
Antiguo 18/01/2008, 09:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Paginacion sin 0

esto lo hace.. lo akbo de postear en otro foro de aca.. pilla haber si lo entiendes...


Código:
function inventores(){
include("conexion.php"); 
$conectar=conexion();
//Inicializo la variable con los numeros de registro a mostrar por pagina
$registros = 10;

//Como te daras cuenta esta es una variable que vendra por url. Ya veras para que funciona
$pagina = $_GET["pagina"];




//Si trabajas con php debes ser intelignt asi que analiza este if y te daras la respuesta del porque la variable $pagina
if (!$pagina) { 

    $inicio = 0; 

    $pagina = 1; 

} 

else { 

    $inicio = ($pagina - 1) * $registros; 

} 

?>

<br><br>
<a onClick="window.open('agregar.php','null','width=300,height=400, scrollbars=no, menubar=no, status=no, location=no, resizable=no, top=200, left=500')" style"cursor: hand"><img src="imagenes/einstein.jpeg"><br><font size=2>Agregar Investigador</font></a>
<br><br><br><br>

<?php
echo"<table width=\"300\" align=\"center\" border=\"0\"><tr><td width=\"100\" align=\"justify\"><h5>Nombre</h5>"

."</td><td width=\"100\" align=\"justify\"><h5>Apellido</h5></td><td width=\"50\" align=\"justify\"><h5>Editar</h5></td><td width=\"50\" align=\"center\"><h5>Borrar</h5></b></td></tr></table>";

      $resultados=mysql_query("Select * from inventores");
      $total_registros = mysql_num_rows($resultados);
      $resultados = mysql_query("SELECT * from inventores LIMIT $inicio, $registros");	

		$total_paginas = ceil($total_registros / $registros);
//este if lo que me da un color para una linea y otro color para la otra linea.. es algo de estetik.	
if($total_registros) {


      while ($Datos = mysql_fetch_array($resultados)) 

      { 
			if ($colorfila==0){
       $color= "#DEDEBE";
       $colorfila=1;
    }else{
       $color="#F0F0F0";
       $colorfila=0;
    }          
      
      echo "<table width=\"300\" align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr bgcolor='".$color."'><td width=\"100\" align=\"justify\"><font size=2>".$Datos['nombre']."</font></td><td width=\"100\" align=\"left\"><font size=2>".$Datos['apellido']."</font></td>";

         echo "<td width=\"50\" border=\"0\"><a href='inventores.php?accion=editar_ppi&cod=".$Datos['id_inventores']."'><img border=\"0\" src=\"imagenes/b_edit.png\"></a></td>"

         ."<td width=\"50\" border=\"0\"><a href='inventores.php?accion=borrar_ppi&cod=".$Datos['id_inventores']."'><img border=\"0\" src=\"imagenes/b_drop.png\"></a>"

         ."</td></tr></table>";}

     } else {

		echo "<font color='darkgray'><h3>(Aun no hay inventores registrados)</h3></font>";

	}         
         

      mysql_free_result($resultados);
// aqui comienza lo lindo, en los link que estan abajo tienes que colocar el link de tu pagina antes del "&pagina=".($pagina-1)." ya que esa es la variable que pasaras por url.. lo demas interpretalo tu. cualquier duda.. preguntas"
      if($total_registros) {

		

		echo "<center>";

		

		if(($pagina - 1) > 0) {

			echo "<a href='inventores.php?accion=inventores&pagina=".($pagina-1)."'>< Anterior</a> ";

		}

		

		for ($i=1; $i<=$total_paginas; $i++){ 

			if ($pagina == $i) {

				echo "<b>".$pagina."</b> "; 

			} else {

				echo "<a href='inventores.php?accion=inventores&pagina=$i'>$i</a> "; 

			}	

		}

	  

		if(($pagina + 1)<=$total_paginas) {

			echo " <a href='inventores.php?accion=inventores&pagina=".($pagina+1)."'>Siguiente ></a>";

		}

		

		echo "</center>";

		

	}

}

aqui me comienza desde el uno..
para muestra un boton... una aplikcion que estoy haciendo bajo un cms.. y estan las fotos con una paginacion...

http://200.26.191.105/~porneia/ubikt/nuke/ubikt.php?a=comunidad&file=perfil&usuario=administ rador&seccion=fotos&album=157
  #9 (permalink)  
Antiguo 18/01/2008, 10:37
 
Fecha de Ingreso: diciembre-2006
Mensajes: 294
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Paginacion sin 0

Gracias! ya entendi jeje y lo pude hacer.
  #10 (permalink)  
Antiguo 18/01/2008, 16:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Paginacion sin 0

No deberías tener página cero... mmm... creo que lo único que faltó fue acotar la consulta:
Código PHP:
 if (!isset($pg)) { $pg 1; }
$inicial = ($pg-1) * $cantidad
Ahora sí. ya no debería faltar nada más.

Saludos
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 22:07.