Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2011, 11:10
GNULinux
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Enviar consulta (SELECT) por session de una página a otra.

Les comento lo que me esta sucediendo.

Si:

1- Realizo un SELECT a una determinada tabla de mi base de datos.
2- Luego almaceno el resultado en un SESSION.
3- Hago un include() de un archivo php (este archivo tiene el papel de vista).
4- En dicho archivo copio en una array lo que hay en la SESSION.

Puedo recorrer la consulta perfectamente a partir del array. Por ejemplo:

controlador.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $this->modObjEmpresa = new modEmpresa();
  4.  
  5. $this->returns = $this->modObjEmpresa->seleccionar($arr=array("todo",0,0));
  6.  
  7.  
  8. $_SESSION['getCont'] = $this->returns;         
  9.  
  10. include("../vistas/empresas/vista.php");
  11.  
  12. ?>

vista.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $resultado = $_SESSION['getCont'];
  4.  
  5. while ($row=mysql_fetch_array($resultado))
  6.  
  7. {
  8.  
  9.     echo $row['razon_soc'];
  10.  
  11. }
  12.  
  13. ?>

Como ven, incluyo la vista dentro del controlador, por tanto, si bien son dos paginas distintas, uso la SESSION como si estuviera siempre en la misma página.

Ahora bien, si trato de hacer exactamente los mismo, pero en vez de incluir la vista redirecciono a la misma, el contenido de SESSION se pierde. Por ejemplo:

controlador.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $this->modObjEmpresa = new modEmpresa();
  4.  
  5. $this->returns = $this->modObjEmpresa->seleccionar($arr=array("todo",0,0));
  6.  
  7.  
  8. $_SESSION['getCont'] = $this->returns;         
  9.  
  10. ?><script type="text/javascript">
  11.     location.href='../vistas/empresas/mostrar.php';
  12. </script><?php
  13.    
  14. ?>

vista.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $resultado = $_SESSION['getCont'];
  4.  
  5. while ($row=mysql_fetch_array($resultado))
  6.  
  7. {
  8.  
  9.     echo $row['razon_soc'];
  10.  
  11. }
  12.  
  13. ?>

Por tanto, lo que sucede es que si uso el SESSION, el cual contiene la consulta, desde la misma página todo funciona perfecto, pero si trato de usar el SESSION desde otra página, pierdo su contenido.

Aclaro que si en el SESSION almaceno una palabra o número cualquiera, en vez de una consulta, por ejemplo $_SESSION['getCont'] = 'HOLA', todo funciona perfecto, es decir, la SESSION se puede utilizar, tanto en la misma página, como en cualquier otra.

Con esto estimo que el problema es al trata de pasar una consulta a través de un SESSION de una página a otra.

Gracias.