Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

error en paginacion con ADODB_Pager

Estas en el tema de error en paginacion con ADODB_Pager en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola buen día, Alguien podria ayudarme con lo siguiente: Estoy haciendo una pagina la cual en uno de sus apartados es la de consultar actividades ...
  #1 (permalink)  
Antiguo 08/09/2009, 17:47
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta error en paginacion con ADODB_Pager

hola buen día,

Alguien podria ayudarme con lo siguiente:

Estoy haciendo una pagina la cual en uno de sus apartados es la de consultar actividades de usuarios, esta consulta la genero por medio de paginacion usando ADODB_Pager, al momento que hago la consulta la primera pagina me la muestra bien pero ya cuando quiero navegar en las diferentes paginas que se generan de acuerdo al numero de registros de mi query no me muestra nada, me regresa la tabla que se genera en vacio.

alguna idea del por que esta sucediendo esto, para mas claro este es parte del codigo:

<?php
$db = NewADOConnection('mysql');
//conexión a la base de datos (servidor, usuario, password, base)
$db->PConnect('localhost','','','SIP');
$sql = " Select b.nombre, fechareg, secuencia, horas, reqinc, actividad, status";
$sql.= " from actividades a, empleados b, estadoact where a.id_persona = b.id";
$sql.= " and a.id_persona = '$ID_PERSONA' and fechareg >= '$FECHAINI' and fechareg <= '$FECHAFIN' and estado <> 'B'";
$sql.= " and a.estado = id_estado ";
$sql.= " order by 1,2,3";

$pager = new ADODB_Pager($db,$sql);
$pager->Render();


$db->Close();
?>
  #2 (permalink)  
Antiguo 08/09/2009, 18:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 5 meses
Puntos: 102
Respuesta: error en paginacion

No he usado ADODB, pero viendo rápido en su documentación, maneja variables de sesión para persistir el número de página que está desplegando (siempre puedes consultar el código) ... así lo muestra en su ejemplo:
Código PHP:
Ver original
  1. <?php
  2. include_once('adodb.inc.php');
  3. include_once('adodb-pager.inc.php');
  4.  
  5. // Demás código ...

Dichas líneas no se ven en tu código ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 09/09/2009, 08:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: error en paginacion

Que tal Jam,

El codigo que puse solo fue la parte en donde pagino el resultado de mi query, este seria el codigo completo:

Código PHP:
Ver original
  1. <?php
  2. /*----------------------------------------------------------------------*
  3.  *  Se agrega este código para evitar que almacene en cache la página   *
  4.  *  y de esta forma obligar a que refresque la pantalla.                *
  5.  *----------------------------------------------------------------------*/
  6. //--> No usar cache (requirido para Opera)
  7.     $GLOBALS['now'] = gmdate('D, d M Y H:i:s') . ' GMT';
  8.     header('Expires: ' . $GLOBALS['now']); // rfc2616 - Section 14.21
  9.     header('Last-Modified: ' . $GLOBALS['now']);
  10.     header('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
  11.     header('Pragma: no-cache'); // HTTP/1.0
  12. // No usar cache fin
  13.  
  14.     $requiredUserLevel = array(1);
  15.     if(empty($DOCUMENT_ROOT))
  16.         $DOCUMENT_ROOT=$HTTP_SERVER_VARS['DOCUMENT_ROOT'];
  17.     $cfgProgdir = $DOCUMENT_ROOT. '/phpSecurePages/';
  18.     include($cfgProgdir. "secure.php");
  19.  
  20.     if(empty($DOCUMENT_ROOT))
  21.     $DOCUMENT_ROOT=$HTTP_SERVER_VARS['DOCUMENT_ROOT'];
  22.     include_once($DOCUMENT_ROOT."/adodb/adodb.inc.php");
  23.     include_once($DOCUMENT_ROOT."/adodb/adodb-ABC.inc.php");
  24.     include_once($DOCUMENT_ROOT."/adodb/adodb-pager.inc.php");  
  25.  
  26.  
  27. $ID_PERSONA = $HTTP_POST_VARS['id'];
  28. $FECHAINI = $HTTP_POST_VARS['añoini'].'-'.$HTTP_POST_VARS['mesini'].'-'.$HTTP_POST_VARS['diaini'];
  29. $FECHAFIN = $HTTP_POST_VARS['añofin'].'-'.$HTTP_POST_VARS['mesfin'].'-'.$HTTP_POST_VARS['diafin'];
  30.  
  31. if ($FECHAINI > $FECHAFIN) {
  32.     $res = NCok;
  33.  
  34.     header("Location: ./SICONACT.php?reg=$res");
  35.  
  36. }
  37. ?>
  38. <html>
  39. <head>
  40. <title>Resultado Consulta (usuarios)</title>
  41.  
  42. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  43. <link rel="stylesheet" href="mm_travel2.css" type="text/css" />
  44. <script language="JavaScript" type="text/javascript">
  45. //--------------- LOCALIZEABLE GLOBALS ---------------
  46. var d=new Date();
  47. var monthname=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
  48. var TODAY = monthname[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
  49. //---------------   END LOCALIZEABLE   ---------------
  50. </script>
  51. </head>
  52. <body bgcolor="#C0DFFD">
  53. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  54.   <tr bgcolor="#3366CC">
  55.     <td colspan="2" rowspan="2"><img src="img/sip.jpg" alt="Header image" width="165" height="127" border="0" /></td>
  56.     <td height="63" colspan="3" id="logo" valign="bottom" align="center" nowrap="nowrap">
  57.     <DIV ALIGN="CENTER" STYLE="margin-top:2px; margin-left:2px; color:black;
  58.     font-size:23px; font-family:Verdana;font-weight:bold; ">SISTEMA INTEGRAL DE PROYECTOS</DIV>
  59.     <DIV ALIGN="CENTER" STYLE="margin-top:-26px; color:#CCFF99;    font-size:23px;
  60.     font-family:Verdana; font-weight:bold; ">SISTEMA INTEGRAL DE PROYECTOS</DIV></td>
  61.     <td width="60">&nbsp;</td>
  62.   </tr>
  63.  
  64.   <tr bgcolor="#3366CC">
  65.     <td height="64" colspan="3" id="tagline" valign="top" align="center"> <p>&nbsp;</p>
  66.     <p><DIV ALIGN="CENTER" STYLE="margin-top:2px; margin-left:2px; color:black;
  67.        font-size:20px; font-family:Verdana;">Actividades del <? echo $FECHAINI;?> al <? echo $FECHAFIN;?></DIV>
  68.        <DIV ALIGN="CENTER" STYLE="margin-top:-24px; color:white;    font-size:20px;
  69.        font-family:Verdana;">Actividades del <? echo $FECHAINI;?> al <? echo $FECHAFIN;?></DIV></p></td>
  70.     <td width="60">&nbsp;</td>
  71.   </tr>
  72.  
  73.   <tr>
  74.     <td colspan="7" bgcolor="#003366"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  75.   </tr>
  76.  
  77.   <tr bgcolor="#CCFF99">
  78.     <td colspan="7" id="dateformat" height="25">&nbsp;&nbsp;<script language="JavaScript" type="text/javascript">
  79.       document.write(TODAY);     </script>  </td>
  80.   </tr>
  81.  <tr>
  82.     <td colspan="7" bgcolor="#003366"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  83.   </tr>
  84.  
  85.  <tr>
  86.     <td width="165" valign="top" bgcolor="#E6F3FF">
  87.     <table border="0" cellspacing="0" cellpadding="0" width="165" id="navigation">
  88.         <tr>
  89.           <td width="165">&nbsp;<br />
  90.          &nbsp;<br /></td>
  91.         </tr>
  92.         <tr>
  93.           <td width="165"><a href="SICONACT.php" class="navText">Atras</a></td>
  94.         </tr>
  95.          <tr>
  96.           <td width="165"><a href="cerrar.php" type="submit" onClick="return confirmar()">Cerrar sesi&oacute;n </a></td>
  97.           <script type="text/javascript">
  98.           function confirmar(){
  99.           return confirm('¿Estas seguro de cerrar la sesion?');
  100.           }
  101.           </script>
  102.         </tr>
  103.       </table>
  104.     *<br />
  105.     &nbsp;<br />
  106.     &nbsp;<br />
  107.     &nbsp;<br />    </td>
  108.     <td width="50"><img src="mm_spacer.gif" alt="" width="50" height="1" border="0" /></td>
  109.     <td colspan="2" valign="top"><img src="mm_spacer.gif" alt="" width="305" height="1" border="0" /><br />
  110.     &nbsp;<br />
  111.     &nbsp;<br />
  112.  
  113.     <table border="0" cellspacing="2" cellpadding="3" width="300">
  114.         <tr>
  115.         <?php      
  116.        $db = NewADOConnection('mysql');
  117. //conexión a la base de datos (servidor, usuario, password, base)
  118.         $db->PConnect('localhost','','','SIP');
  119.    $sql = " Select b.nombre, fechareg, secuencia, horas, reqinc, actividad, status";  
  120.    $sql.= " from actividades a, empleados b, estadoact where a.id_persona = b.id";
  121.    $sql.= " and a.id_persona = '$ID_PERSONA' and fechareg >= '$FECHAINI' and fechareg <= '$FECHAFIN' and estado <> 'B'";   
  122.    $sql.= " and a.estado = id_estado ";        
  123.    $sql.= " order by 1,2,3";
  124.  
  125.         $pager = new ADODB_Pager($db,$sql);
  126.         $pager->Render();
  127.  
  128.  
  129.         $db->Close();        ?>
  130.         </tr>
  131.   </table>
  132.  
  133.     <td width="116">&nbsp;</td>
  134.   </tr>
  135.   <tr>
  136.     <td width="165">&nbsp;</td>
  137.     <td width="50">&nbsp;</td>
  138.     <td width="4">&nbsp;</td>
  139.     <td width="386">&nbsp;</td>
  140.     <td width="116">&nbsp;</td>
  141.     <td width="190">&nbsp;</td>
  142.     <td width="51">&nbsp;</td>
  143.   </tr>
  144. </table>
  145. </body>
  146. </html>
El ADODB_Pager me regresa el resultado, en 3 paginas, la primera me la muestra bien pero cuando quiero pasarme a la 2da o 3ra me las da en vacio, y no entiendo por que?


saludos...

Última edición por jam1138; 09/09/2009 a las 12:43 Razón: Resalto sintaxis
  #4 (permalink)  
Antiguo 09/09/2009, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: error en paginacion con ADODB_Pager

Revisa si estas pasando los parámetros para filtrar tu consulta en las demás paginas, cuando veas la URL que genera para las siguientes paginas deben de existir los parámetros de tu query.

Saludos.
  #5 (permalink)  
Antiguo 09/09/2009, 10:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: error en paginacion con ADODB_Pager

Que tal,

esto es lo que se envia en la URL al momento de cambiar a la pagina 2:

/localhost/SICONSUL.php?adodb_next_page=2

es todo lo que envia.
  #6 (permalink)  
Antiguo 09/09/2009, 10:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: error en paginacion con ADODB_Pager

puse esta linea en mi codigo error_reporting(E_ALL);

la cual me dice al momento de cambiarme de pagina que las variables con las que hago el query no estan definidas, lo cual me lleva a la siguiente pregunta, ¿como las envio?...

saludos...
  #7 (permalink)  
Antiguo 09/09/2009, 11:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: error en paginacion con ADODB_Pager

Es lo que te comento debes de enviarlas de alguna forma, busca en la documentación de ADODB_Pager si tiene algun método para agregar los valores, si estos provienen por POST es probable que los tengas que pasar por GET.

Saludos.
  #8 (permalink)  
Antiguo 09/09/2009, 11:55
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: error en paginacion con ADODB_Pager

En la documentacion no viene nada, solo viene para un query sencillo de select * from tabla;
y ya...

Que chafa...
  #9 (permalink)  
Antiguo 09/09/2009, 12:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: error en paginacion con ADODB_Pager

Deberías de ver el código fuente del pager para ver como genera los links y de donde obtiene la variable con eso podrías rastrear la forma de hacerlo.

Saludos.
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 02:18.