Foros del Web » Programando para Internet » PHP »

script de paginacion siempre me da los mismos resultados en todas las paginas

Estas en el tema de script de paginacion siempre me da los mismos resultados en todas las paginas en el foro de PHP en Foros del Web. Hola todavia no se lo sufiente de php estoy aprendiendo poco a poco con tutoriales libros y el manual tengo este escript de paginacion de ...
  #1 (permalink)  
Antiguo 29/08/2011, 08:03
yolidey
Invitado
 
Mensajes: n/a
Puntos:
script de paginacion siempre me da los mismos resultados en todas las paginas

Hola todavia no se lo sufiente de php estoy aprendiendo poco a poco con tutoriales libros y el manual tengo este escript de paginacion de resultados, solo e insertado algo mas de 50 url en la base de datos para ver como funciona e inprementarlo en mi web beo que me da los resultados pero no todos, creo que deveria de devolber 10 resultados por pagina y me da 10 por pagina pero siempre son los mismos en todas las paginas si en la 1 me da 10 en la siguiente me deveria dar 10 diferentes y hasi sucesibamente pienso yo como sale en otras webs, lo e estado mirando bastante pero no logro hacer que salga de esa forma si soys tan amables de echarle una mirada al codigo y decirme el posibre fallo gracias a todos/as.

aqui os dejo una url para ver como queda, que siempre da los mismos resultados en todas las paginas del 1 al 6.

http://curso-php.comocreartuweb.es/paginacion.php

Código PHP:
Ver original
  1. <?php
  2. function conectar()
  3. {
  4. $base_de_datos = "";
  5. $db_usuario = "";
  6. $db_password = "";
  7. if (!($link = @mysql_connect("directorio", $db_usuario, $db_password)))
  8. {
  9. echo "Error conectando a la base de datos.";
  10. exit();
  11. }
  12. if (!@mysql_select_db($base_de_datos, $link))
  13. {
  14. echo "Error seleccionando la base de datos.";
  15. exit();
  16. }
  17. return $link;
  18. }
  19. $db = conectar();
  20. $registros = 10;
  21. if (!$pagina) {
  22. $inicio = 0;
  23. $pagina = 0;
  24. }
  25. else {
  26. $inicio = ($pagina - 1)* $registros;
  27. }
  28. ?>
  29. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  30. <html>
  31. <head>
  32. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  33. <title>Paginacion de Prueba</title>
  34. <link rel="stylesheet" href=".css" type="text/css" media="all">
  35. <style>
  36. body { font-family: verdana; font-size:12px}
  37. </style>
  38. </head>
  39. <body bgcolor="beige">
  40. <div align="left">
  41. <h1>Paginacion</h1>
  42. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  43. <h2>Resultados</h2>
  44. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  45. <div id="contenido">
  46. <?php
  47. $resultados= @mysql_query("SELECT id FROM tabla");
  48. $total_registros = mysql_num_rows($resultados);
  49. $resultados = mysql_query("SELECT * FROM  `tabla` ORDER BY  `id` DESC LIMIT 0 , 10");      
  50. $total_paginas = @ceil($total_registros / $registros);     
  51.            
  52. if($total_registros) {
  53.  
  54. while($articulo=@mysql_fetch_array($resultados)) { 
  55.  
  56.  
  57. echo "<b>".$articulo["tabla"]."</b><br>";
  58. echo "<font color='#000000'>".$articulo[""]."</font><br><br><br>";
  59. }
  60. } else {
  61. echo "<font color='darkgray'>(sin resultados)</font>";
  62. }
  63. @mysql_free_result($resultados);       
  64. if($total_registros) {
  65. ?>
  66. </div>
  67. <div id="resultados">
  68. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  69.  
  70. <?php
  71. echo "<center>";
  72.  
  73. if(($pagina - 1)> 0) {
  74. echo "<a href='paginacion.php?pagina=".($pagina - 1)."'><< Anterior <<</a> ";
  75. }
  76.  
  77. for ($i=1; $i<=$total_paginas; $i++){
  78. if ($pagina == $i) {
  79. echo "<b>".$pagina."</b> ";
  80. } else {
  81. echo "<a href='paginacion.php?pagina=$i'>$i</a> ";
  82. }  
  83. }
  84. if(($pagina + 1)<=$total_paginas) {
  85. echo " <a href='paginacion.php?pagina=".($pagina + 1)."'><< Inicio <<</a> ";
  86. }
  87. echo "</center>";
  88. }
  89. ?>
  90. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  91. </div>
  92. </div>
  93. </body>
  94. </html>
  95. <?php
  96. ?>

Última edición por yolidey; 29/08/2011 a las 08:15
  #2 (permalink)  
Antiguo 29/08/2011, 08:26
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: script de paginacion siempre me da los mismos resultados en todas las pagi

Te falta la mitad de la funcionalidad. Tienes este código:
Código PHP:
Ver original
  1. $registros = 10;
  2. if (!$pagina) {
  3.     $inicio = 0;
  4.     $pagina = 0;
  5. } else {
  6.     $inicio = ($pagina - 1)* $registros;
  7. }
Pero $pagina te lo inventas, no lo has sacado de ningún lado. Y, por otro lado, $inicio lo declaras aquí, pero no lo vuelves a usar nunca más.

Supongo que has sacado el código de algún manual, si es así, continúa leyendo el manual, porque con sólo sacar el código no te va a funcionar, tienes que organizarlo igual que el manual. Te explico un poco lo que te falta:
- Cuando se hace una paginación, no hay otra forma que poner en el URL un parámetro para marcar la página en la que estamos. Esto es, a tu URL tendrías que añadir ?pagina=1 (siendo 1 la primera página y de ahí en adelante, 2, 3...), por ejemplo:
http://curso-php.comocreartuweb.es/p...n.php?pagina=1
En el código tienes que acceder a dicho valor con GET:
Código PHP:
Ver original
  1. $pagina = $_GET['pagina']
Y ya con este valor, ejecutas el código que tú tienes ahí.

- Una vez decidido el $inicio con el código que tienes puesto, tienes que utilizarlo dentro de la consulta SQL. Tienes esto:
Código PHP:
Ver original
  1. $resultados = mysql_query("SELECT * FROM  `tabla` ORDER BY  `id` DESC LIMIT 0 , 10");
Pero ahí siempre empiezas en el registro 0 y sacas los 10 primeros. Échale un ojo a la cláusula LIMIT del SELECT. Tendrías que poner algo así:
Código PHP:
Ver original
  1. $resultados = mysql_query("SELECT * FROM  `tabla` ORDER BY  `id` DESC LIMIT " . $inicio . " , " . $registros . ");

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 29/08/2011, 09:57
yolidey
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: script de paginacion siempre me da los mismos resultados en todas las pagi

gracias por tu comentario vgonga1986 aver si aprendo un poco mas para resolver este problema nose bien como poner lo que me falta en orden, el get lo de los enlaces ya que boy aprendiendo pasito a pasito todo, este escript lo saque de una web pero no habia ningun tutorial para inprementar el codigo que falta si serias tan amabre de recomendarme algun tutorial facil de entender para alguien que enpieza a aprendrer php, sobre esto de la paginacion de resultados o expricarme un poco mas en profundidad si tienes tiempo como inprementar el get y los enlaces en el script para que no tenga fallos y asi entender un poco mas las funciones que le faltan y como inprementarlas para que el script funcione correctamente. .

Última edición por yolidey; 29/08/2011 a las 10:06
  #4 (permalink)  
Antiguo 30/08/2011, 02:45
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: script de paginacion siempre me da los mismos resultados en todas las pagi

No hay más profundidad que lo que ya te he puesto. Mírate algo de paso de parámetros por URL, pero es básicamente eso. Para pasar parámetros se añade a la URL así:
http://www.my_sitio.com/my_pagina.ph...&param3=value3...

Estos valores se pueden extraer desde el código PHP con:
Código PHP:
Ver original
  1. $param1 = $_GET['param1'];
  2. $param2 = $_GET['param2'];
  3. $param3 = $_GET['param3'];

Eso es toda la profundidad que te puedo explicar.

Cómo aplicarlo a lo que tú tienes de paginación? Ya te lo expliqué en el post anterior, tienes que pasar la página en la que estás por URL, si no, no hay forma de saber qué página es, no?

Un saludo.

PD: si quieres manuales de paginación, no tienes más que buscar en este foro, tendrás varios y varias dudas también sobre esto.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 30/08/2011 a las 02:46 Razón: Añadir PD.

Etiquetas: html, mysql, paginacion, registro, siempre, sql, tabla, usuarios
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 00:26.