Foros del Web » Programando para Internet » PHP »

Problema al paginar resultados

Estas en el tema de Problema al paginar resultados en el foro de PHP en Foros del Web. Hola, Estube intentando paginar los resultados de una consulta de 15 en 15 pero me sale el siguiente error: Código: Parse error: syntax error, unexpected ...
  #1 (permalink)  
Antiguo 07/11/2010, 06:00
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 7 meses
Puntos: 8
Problema al paginar resultados

Hola,

Estube intentando paginar los resultados de una consulta de 15 en 15 pero me sale el siguiente error:

Código:
Parse error: syntax error, unexpected '=' in /home/usuario/public_html/eventoresultado.php on line 37
Aqui esta mi código:

Código PHP:
Ver original
  1. <?php
  2. CONECCION()
  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 = 15;
  14.  
  15. /* función para paginar */
  16.  
  17. function paginacion($total,$pp,$st,$url) {
  18.  
  19. if($total>$pp) {
  20. $resto=$total&#37;$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. $total = mysql_result($sql,0);
  78. }
  79.  
  80. else {
  81. $sql = "select  * from eventos where mes='$mes' ORDER BY dia $orden limit '.$st.','.$pp.'";
  82. $total = mysql_result($sql,0);
  83. }
  84.  
  85. $res = mysql_query($sql,$conn) or die(mysql_error());
  86. $num_rows = mysql_num_rows($res);
  87.  
  88. if($num_rows == '') {
  89. echo 'No se encontraron eventos';
  90. }
  91. else {
  92.  
  93. while($row = mysql_fetch_array($res)){
  94.  
  95. echo 'Imprime resultados';
  96. }
  97. echo paginacion($total, $pp, $st, 'eventoresultado.php?st=');
  98. }
  99. mysql_close($conn);
  100. ?>

La linea 37 es:

Código PHP:
} else if($current_page>=&& $current_page< =($pages-5)) { 
Espero su ayuda :) desde ya gracias.
  #2 (permalink)  
Antiguo 07/11/2010, 06:37
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Problema al paginar resultados

Hola kenproxd,

No lo he probado pero posiblemente sea el espacio que dejas entre el simbolo < y =, prueba a ponerlo junto de la siguiente forma
Código:
} else if($current_page>=5 && $current_page<=($pages-5)) {
  #3 (permalink)  
Antiguo 07/11/2010, 07:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Problema al paginar resultados

Gracias por tu respuesta :)

hice lo que me dijiste y ahora me da el siguiente error :

Cita:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/usuario/public_html/eventoresultado.php on line 87
La línea 87 es la que tiene la variable $total

Código PHP:
else {
$sql "select  * from eventos where mes='$mes' ORDER BY dia $orden limit $st,$pp";
$total mysql_result($sql,0);

Debajo del error me muestra únicamente 10 resultados.

Última edición por kenproxd; 07/11/2010 a las 07:13
  #4 (permalink)  
Antiguo 07/11/2010, 07:17
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Problema al paginar resultados

hola,

Haber lo estas haciendo mal, antes de usar la función mysql_result tienes que ejecutar la consulta con la función mysql_query.
Mirate la doumentación de la función mysql_result http://es.php.net/mysql_result, ahí encontrarás ejemplos de como puedes hacerlo.
  #5 (permalink)  
Antiguo 07/11/2010, 07:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Problema al paginar resultados

Mucha gracias :)

Logré solucionarlo, pero ahora al intentar cambiar de página me sale el siguiente error:

Cita:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 2 in /home/usuarios/public_html/eventoresultado.php on line 89
No se encontraron eventos
La linea 89 es la siguiente:

Código PHP:
$total mysql_result($res,0); 
dejo el código completo para que veas como me quedo:
Código PHP:
Ver original
  1. <?php
  2. coneccion ()
  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. $num_rows = mysql_num_rows($res);
  86.  
  87. if($num_rows == '') {
  88. echo 'No se encontraron eventos';
  89. }
  90. else {
  91.  
  92. while($row = mysql_fetch_array($res)){
  93.  
  94. echo 'imprime resultados';
  95. }
  96. echo paginacion($total, $pp, $st, 'eventoresultado.php?st=');
  97. }
  98. mysql_close($conn);
  99. ?>

Muchisimas gracias nuevamente :)

Etiquetas: paginar, resultados
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:58.