Foros del Web » Programando para Internet » PHP »

paginacion

Estas en el tema de paginacion en el foro de PHP en Foros del Web. hola un gran favor estoy tratando de implementar un codigo de una paginacion no tengo errores, en el codigo creo, pero no me sale correctamente, ...
  #1 (permalink)  
Antiguo 25/08/2012, 21:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
paginacion

hola un gran favor estoy tratando de implementar un codigo de una paginacion no tengo errores, en el codigo creo, pero no me sale correctamente, alguein pude ayudarme aver que estoy haciendo mal, pego el codigo para ver en que puedo estar haciendo mal gracias.

Código PHP:
<?php include "modulos/conexion.php";?>
<?php 
$consulta 
"SELECT * FROM noticias ORDER BY fecha_ingreso";
$resultado mysql_query($consulta);
$num_registros mysql_num_rows($consulta);

$registros 2;
$pagina $_GET['num'];

if (
is_numeric($pagina)){
    
$inicio =(($pagina-1)*$registros);
}else{
    
$inicio 0;
    
$consulta "SELECT * FROM noticias LIMIT $inicio, $registros";
    
$resultado mysql_query($consulta);
    
$paginas ceil($num_registros/$registros);
}
?>

// aca colloco la tabla con la data a paginar y elpaginador 

<form name="form1" method="post" action="">

  <table width="950" border="0" align="center" cellpadding="0" cellspacing="3" class="borde-tablas">
   <tr>
      <th width="28" scope="col">Nº</th>
      <th width="165" scope="col">Titulo Noticia</th>
      <th width="193" scope="col">Imagen Noticia</th>
      <th width="254" scope="col">Descripcion Noticia</th>
      <th width="74" scope="col">Fecha</th>
      <th width="109" scope="col">estado</th>
      <th width="32" scope="col">&nbsp;</th>
      <th width="18" scope="col">&nbsp;</th>
    </tr>
    
    <?php
    
    
while($fila=mysql_fetch_array($resultado)){
        
$titulo $fila ['titulo'];
        
$imagen $fila ['imagen'];
        
$descripcion $fila ['descripcion'];
        
$fecha_ingreso $fila ['fecha_ingreso'];
        
$estado $fila['estado'];
        
$num++;
    
?>
    <tr>
      <td><?php echo $num?></td>
      <td><?php echo $titulo?></td>
      <td><img src="http://www.forosdelweb.com/f18/noticias/<?php echo $imagen?>" width="60" height="60"></td>
      <td><?php echo $descripcion?></td>
      <td><?php echo $fecha_ingreso?></td>
      <td><?php echo $estado?></td>
      <td><img src="imagenes/lapiz.gif" width="16" height="16"></td>
      <td><img src="imagenes/borrar2.png" width="16" height="16"></td>
    </tr>
    <?php 
    
}
    
?>
    </table>
</form>
<div style="width:1000px; margin:auto; padding-top:25px;">
<?php 
if($pagina>1)
echo  
"<a href='listado_noticias.php?num=". ($pagina-1) ."'>Anterior</a> ";
for (
$cont=1$cont <= $paginas$cont++);
{
    if (
$cont==$pagina){
        echo 
$cont " ";
        
    }
    else{
    
    echo 
"<a href='listado_noticias.php?num="$cont ."'>$cont</a> ";    
    }
}
if(
$pagina<$paginas)
echo  
"<a href='listado_noticias.php?num=". ($pagina+1) ."'>Siguiente</a> ";


?>
</div>

Última edición por cualquiera; 25/08/2012 a las 21:35
  #2 (permalink)  
Antiguo 25/08/2012, 22:01
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 2 meses
Puntos: 15
Respuesta: paginacion

Sería mejor si esta parte lo haces así

Código PHP:
Ver original
  1. $registros = 2;
  2. $pagina = is_numeric($_GET['num'])? $_GET['num'] : 1;
  3. $inicio = ($pagina*$registros) - $registros;
  4. $consulta = "SELECT * FROM noticias LIMIT $inicio, $registros";
  5. $resultado = mysql_query($consulta);
  6. $paginas = ceil($num_registros/$registros);
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »
  #3 (permalink)  
Antiguo 25/08/2012, 22:18
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: paginacion

hola gracias, por responder y ayudar implemente el codigo, tal cual me lo sugueriste pero sigue sin el resultado, lo que tengo son 6 registros y quiero mostrar de 2 en 2 deveria salir 3 paginas, pero no solo me sale una pagina con los 2 primeros registros no puedo paginar lo siguientes, tambien cunado puse el codigo que indicas perdi el vinculo en el paginador, que podria probar gracias por la ayuda
  #4 (permalink)  
Antiguo 26/08/2012, 10:35
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: paginacion

hola, alguna otra idea que probar, gracias
  #5 (permalink)  
Antiguo 26/08/2012, 11:16
 
Fecha de Ingreso: febrero-2007
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: paginacion

ok, hice 2 cambios un error era el
Código PHP:
Ver original
  1. $num_registros = mysql_num_rows($consulta);
lo estaba igualando a $consulta y tenia que igualarlo a $resultado, con ese cambio mas el codigo que me envio zarkiel, ya funciona la paginacion, pero lo hace correctamente las flechas de anterior y siguiente, lo que no pudeo obtener correctamente son los numeros de paginas que deverian aparecer me muestra siempre el numero 4 y el vinculo a la pagina 4 creo que es un error en el for, alguna ayuda por favor pego el codigo con las modificacionesy tal cual como funciona gracias

Código PHP:
Ver original
  1. <?php include "modulos/conexion.php";?>
  2. <?php
  3. $consulta = "SELECT * FROM noticias ORDER BY fecha_ingreso";
  4. $resultado = mysql_query($consulta);
  5. $num_registros = mysql_num_rows($resultado);
  6. if ($num_registros==0){
  7.    
  8.     echo "No se ha encontrado registros";
  9.     exit();
  10.    
  11. }
  12.  
  13. $registros = 2;
  14. $pagina = is_numeric($_GET['num'])? $_GET['num'] : 1;
  15. $inicio = ($pagina*$registros) - $registros;
  16. $consulta = "SELECT * FROM noticias LIMIT $inicio, $registros";
  17. $resultado = mysql_query($consulta);
  18. $paginas = ceil($num_registros/$registros);
  19.  
  20. ?>
  21.  
  22. // resultadosa paginar
  23.  
  24. <div id="centrado">
  25. <form name="form1" method="post" action="">
  26.  
  27.   <table width="950" border="0" align="center" cellpadding="0" cellspacing="3" class="borde-tablas">
  28.    <tr>
  29.       <th width="28" scope="col">Nº</th>
  30.       <th width="165" scope="col">Titulo Noticia</th>
  31.       <th width="193" scope="col">Imagen Noticia</th>
  32.       <th width="254" scope="col">Descripcion Noticia</th>
  33.       <th width="74" scope="col">Fecha</th>
  34.       <th width="109" scope="col">estado</th>
  35.       <th width="32" scope="col">&nbsp;</th>
  36.       <th width="18" scope="col">&nbsp;</th>
  37.     </tr>
  38.    
  39.     <?php
  40.    
  41.     while($fila=mysql_fetch_array($resultado)){
  42.         $titulo = $fila ['titulo'];
  43.         $imagen = $fila ['imagen'];
  44.         $descripcion = $fila ['descripcion'];
  45.         $fecha_ingreso = $fila ['fecha_ingreso'];
  46.         $estado = $fila['estado'];
  47.         $numero++;
  48.     ?>
  49.     <tr>
  50.       <td><?php echo $numero; ?></td>
  51.       <td><?php echo $titulo; ?></td>
  52.       <td><img src="http://www.forosdelweb.com/f18/noticias/<?php echo $imagen; ?>" width="60" height="60"></td>
  53.       <td><?php echo $descripcion; ?></td>
  54.       <td><?php echo $fecha_ingreso; ?></td>
  55.       <td><?php echo $estado; ?></td>
  56.       <td><img src="imagenes/lapiz.gif" width="16" height="16"></td>
  57.       <td><img src="imagenes/borrar2.png" width="16" height="16"></td>
  58.     </tr>
  59.     <?php
  60.     }
  61.     ?>
  62.     </table>
  63. </form>
  64. <div id="paginador">
  65. <?php
  66. if($pagina>1){
  67. echo  "<a href='listado_noticias.php?num=". ($pagina-1) ."'>Anterior</a> ";
  68. }
  69. for ($cont=1; $cont<=$paginas; $cont++);
  70. {
  71.     if ($cont==$pagina){
  72.         echo $cont . " ";
  73.        
  74.     }
  75.     else{
  76.    
  77.     echo "<a href='listado_noticias.php?num=". $cont ."'>$cont</a> ";  
  78.     }
  79. }
  80. if($pagina<$paginas){
  81. echo  "<a href='listado_noticias.php?num=". ($pagina+1) ."'>Siguiente</a> ";
  82. }
  83.  
  84. ?>
  85. </div>
  86.   </div>
  #6 (permalink)  
Antiguo 27/08/2012, 05:06
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: paginacion

Código PHP:
Ver original
  1. <?php
  2. $paginacion = $_GET['paginacion'] * 10;
  3. $registros = $paginacion + 10;
  4. $consulta = ("SELECT * FROM noticias LIMIT $paginacion, $registros");
  5. while ($noti = mysql_fetch_array($consulta){
  6. echo $noti['noticias'];
  7. }
  8. ?>
  9. <?php
  10. $contador = mysql_query("SELECT COUNT(*) noticia FROM noticias");
  11. while($noti = mysql_fetch_array($contador)){
  12. $paginas = $noti['noticia'] / 10;
  13. $paginas = round($paginas);
  14. }
  15. ?>
  16. <?php
  17. for ($i = 0; $i <= $paginas; $i++){
  18. echo "<a href='$i'>$i</a>";
  19. }
  20. ?>

Etiquetas: mysql, paginacion, registro, sql, tabla
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 17:48.