Ver Mensaje Individual
  #7 (permalink)  
Antiguo 12/06/2012, 15:04
roodriv
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Otro problema con paginación

Agregando lo que me dicen me envía directamente a la página número 2 y nunca me muestra la noticia número 7 !

Así quedó agregando lo que me dijo bUllan9ebrio y ocp001a

Código PHP:
Ver original
  1. <?php
  2. /*
  3. * autor:
  4. * mail:  
  5.  
  6. * page:
  7. */
  8. $host = "";
  9. $user = "";
  10. $passwd = "";
  11. $database = "";
  12.  
  13. //provando conexion con mysql
  14. $db = mysql_connect($host,$user,$passwd);
  15.  
  16. //provando conexion con la base de datos
  17. @mysql_select_db($database,$db);
  18.  
  19. $rows_for_page = 6; //numero de registros a mostra
  20. $sql = "SELECT * FROM noticia";
  21. $result = mysql_query($sql, $db);
  22. //total de registros existentes en la tabla
  23. $total_records = @mysql_num_rows($result);
  24.  
  25. //total de paginas
  26. $pages = ceil($total_records / $rows_for_page);
  27.  
  28.  
  29. //si no existe por GET la var screen coloca por defecto el valor de 0
  30. if (!isset($_GET['pagina']))
  31.   $position = 1;
  32. //de lo contrario asigna el valor por get a $position
  33. else
  34.   $position = (int)$_GET['pagina'];
  35.  
  36. //comenzando el paginado
  37. $start = $position * $rows_per_page;
  38. //consulta ala db por limites
  39. $sql = "SELECT * FROM noticia order by id ASC LIMIT ".$start.",".$rows_for_page;
  40. //ejecuta el query
  41. $result = mysql_query($sql, $db);
  42. //resultados de la consulta (total)
  43. $rows = @mysql_num_rows($result);
  44.  
  45. //imprime registros
  46. for ($i = 0; $i < $rows; $i++) {
  47.   $titulo = mysql_result($result,$i,1);
  48.   $subtitulo = mysql_result($result,$i,2);
  49.   echo "<div class='col1 marg_right1'><h3 class='color1'>$titulo</h3>" ;
  50.   echo "<br />" ;
  51.   echo "<p>" ;
  52.   echo "<img src=noticias/images_bd.php?id=$mostrador[id]&tam=2 class=alignleft width='80' height='60' >" ;
  53.   echo "</p>" ;
  54.   echo "<p>$subtitulo</p></div>" ;
  55. }
  56. //comienza el paginado
  57. echo '<p><hr></p>
  58. <div style="width:100%; text-align:center;">';
  59. //si posicion es mayor o igual a 1 quiere decir que muestre la parte Primero y Anterior de la paginación
  60. if ($position >= 1) {
  61.   $url = "noveda.php?pagina=0";
  62.   echo "<a href=\"$url\">Primero</a>\n";
  63.   //para que el preius no termine con valor 0
  64.    $url = "noveda.php?pagina=" .($position-1);
  65.   echo "<a href=\"$url\">Anterior</a>\n";
  66. }
  67. //sirve para expandir el prollecto para poder paginar de la manera (Primero Anterior | 0 | 1 | 2 | 3 | Siguiente Ultimo)
  68. /*for ($i = 0; $i < $pages; $i++) {
  69.   $url = "pag_next.php?screen=" . $i;
  70.   echo " | <a href=\"$url\">$i</a> | ";
  71. }*/
  72.  
  73. //muestra total de resultados 1 de N
  74. echo '<strong>'.($position+1).' de '.$pages.' </strong>';
  75.  
  76. //si position es menor a el valor entre los parentesis muestra la parte (Siguiente Ultimo)
  77. if ($position < ($pages-1)) {
  78.   $url = "noveda.php?pagina=" . ($position+1);
  79.   echo "<a href=\"$url\">Siguiente</a>\n";
  80.   $url = "noveda.php?pagina=" . ($pages-1);
  81.   echo "<a href=\"$url\">Ultimo</a>\n";
  82. }
  83. echo '</div>';
  84. ?>

Y para probar como funciona les dejo

www.jrwebdesign.com.ar/demo/noveda.php