Foros del Web » Programando para Internet » PHP »

Problema con links de paginador

Estas en el tema de Problema con links de paginador en el foro de PHP en Foros del Web. Hola, Hace unos días hice un post sobre un problema que tuve al paginar unos resultados, problema el cuál resolvi, pero ahora tengo otro en ...
  #1 (permalink)  
Antiguo 10/11/2010, 06:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 7 meses
Puntos: 8
Problema con links de paginador

Hola,

Hace unos días hice un post sobre un problema que tuve al paginar unos resultados, problema el cuál resolvi, pero ahora tengo otro en el mismo sistema.

Al hacer la busqueda el sistema muestra los resultados totales, los cuales no pasan de los 80. Se supone que me muestra 10 resultados por página, pero yo obtengo lo siguiente:

10 resultados

[1]2345678910 [>] [>>>]



Dando a entender que los resultados son 100.

Al cambiar de página me da el siguiente error:

Código:
Warning:  mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 2 in /home/usuario/public_html/eventoresultado.php on line 89
No se encontraron eventos
Esta es la línea 89:

Código PHP:
$total mysql_result($res,0); 
El código completo es el siguiente:

Código PHP:
Ver original
  1. <?php
  2. conección ()
  3.  
  4. $mes=$_POST['mes'];
  5. $orden=$_POST['orden'];
  6.  
  7. if(isset($_GET['st'])) {
  8. $st = $_GET['st'];
  9. } else {
  10. $st = 0;
  11. }
  12.  
  13. $pp = 10;
  14.  
  15. /* función para paginar */
  16.  
  17. function paginacion($total,$pp,$st,$url) {
  18.  
  19. if($total>$pp) {
  20. $resto=$total%$pp;
  21. if($resto==0) {
  22. $pages=$total/$pp;
  23. } else {
  24. $pages=(($total-$resto)/$pp)+1;
  25. }
  26.  
  27. if($pages>10) {
  28. $current_page=($st/$pp)+1;
  29. if($st==0) {
  30. $first_page=0;
  31. $last_page=10;
  32. } else if($current_page>=5 && $current_page<=($pages-5)) {
  33. $first_page=$current_page-5;
  34. $last_page=$current_page+5;
  35. } else if($current_page<5) {
  36. $first_page=0;
  37. $last_page=$current_page+5+(5-$current_page);
  38. } else {
  39. $first_page=$current_page-5-(($current_page+5)-$pages);
  40. $last_page=$pages;
  41. }
  42. } else {
  43. $first_page=0;
  44. $last_page=$pages;
  45. }
  46.  
  47. for($i=$first_page;$i< $last_page;$i++) {
  48. $pge=$i+1;
  49. $nextst=$i*$pp;
  50. if($st==$nextst) {
  51. $page_nav .= '<b>['.$pge.']';
  52. } else {
  53. $page_nav .= '<a href="'.$url.$nextst.'">'.$pge.'</a>';
  54. }
  55. }
  56.  
  57. if($st==0) { $current_page = 1; } else { $current_page = ($st/$pp)+1; }
  58.  
  59. if($current_page< $pages) {
  60. $page_last = '<b>[<a href="'.$url.($pages-1)*$pp.'">>>></a>]';
  61. $page_next = '[<a href="'.$url.$current_page*$pp.'">></a>]';
  62. }
  63.  
  64. if($st>0) {
  65. $page_first = '<b>[<a href="'.$url.'0">< <<</a>]</a></b>';
  66. $page_previous = '[<a href="'.$url.''.($current_page-2)*$pp.'">< </a>]';
  67. }
  68. }
  69.  
  70. return "$page_first $page_previous $page_nav $page_next $page_last";
  71. }
  72.  
  73. /* termina función para paginar */
  74.  
  75. if($mes == 'todos') {
  76. $sql = "select  * from eventos ORDER BY mes $orden, dia $orden limit $st,$pp";
  77. }
  78.  
  79. else {
  80. $sql = "select  * from eventos where mes='$mes' ORDER BY dia $orden limit $st,$pp";
  81. }
  82.  
  83. $res = mysql_query($sql,$conn) or die(mysql_error());
  84. $total = mysql_result($res,0);
  85.  
  86. if($total == '') {
  87. echo 'No se encontraron eventos';
  88. }
  89. else {
  90.  
  91. while($row = mysql_fetch_array($res)){
  92.  
  93. echo 'resultados';
  94. }
  95. echo paginacion($total, $pp, $st, 'eventoresultado.php?st=');
  96. }
  97. mysql_close($conn);
  98. ?>

Espero me puedan ayudar, gracias :)

Etiquetas: links, paginador
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 08:26.