Foros del Web » Programando para Internet » PHP »

Registrar el resultado de una consulta en una session

Estas en el tema de Registrar el resultado de una consulta en una session en el foro de PHP en Foros del Web. Buenas, mi consulta es la siguiente, me gustaría saber si puedo guardar el resultado de una consulta en una variable de sesión para usarlo posteriormente ...
  #1 (permalink)  
Antiguo 03/05/2006, 04:13
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Registrar el resultado de una consulta en una session

Buenas, mi consulta es la siguiente, me gustaría saber si puedo guardar el resultado de una consulta en una variable de sesión para usarlo posteriormente en otra página.

Pongo un ejemplo:

FICHERO1
---------

<?php
session_start();
?>
<html>

<head>
<title></title>
</head>

<body>

<?php

$con = mssql_pconnect ("xxxxxxxx", "xxxx", "xxxxxxxxxxx");
if(!$con){
echo "error de conección.";
exit;
}

if (!mssql_select_db ("jovitel", $con)){
echo "No existe la base de datos Jovitel.";
exit;
}


$result=mssql_query('select distinct NOMBRE from jovitel.dbo.v_comerciales');


echo "<table bgcolor=#D7D7FF width = 40%>";
while ($row = mssql_fetch_assoc($result))
{
echo "<tr onMouseOver=bgColor=\"#FFFFB7\" onMouseOut=bgColor=\"#D7D7FF\">";
echo "<td>";
echo "<font face=Arial size=1>$row[NOMBRE]</font>";
echo "</td>";
echo "</tr>";
}
echo "</table>";

mssql_data_seek($result,0);

$_SESSION['result'] = $result;

?>
<a href="prueba2.php">prueba2</a>

</body>

</html>


FICHERO 2
----------

<?php
session_start();
?>
<html>

<head>
<title></title>
</head>

<body>

<?php

echo "<table bgcolor=#D7D7FF width = 40%>";
while ($row = mssql_fetch_assoc($_SESSION[result]))
{
echo "<tr onMouseOver=bgColor=\"#FFFFB7\" onMouseOut=bgColor=\"#D7D7FF\">";
echo "<td>";
echo "<font face=Arial size=1>$row[NOMBRE]</font>";
echo "</td>";
echo "</tr>";
}
echo "</table>";
?>

</body>

</html>


no me funciona me da error, alguién me puede decir si se puede hacer lo que propongo y como?, también me interesa saber si puedo registrar como variable de session un objeto creado por mí.
  #2 (permalink)  
Antiguo 03/05/2006, 04:25
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
¿Pero qué error te da?

Cita:
while ($row = mssql_fetch_assoc($_SESSION[result]))
Prueba a poner result entre comillas. Un saludo
  #3 (permalink)  
Antiguo 03/05/2006, 04:30
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
lo he puesto el result con comillas y me da el mismo error:

Warning: mssql_fetch_assoc(): supplied argument is not a valid MS SQL-result resource in C:\AppServ\www\pruebas\prueba2.php on line 15

la línea 15 es esta: while ($row = mssql_fetch_assoc($_SESSION['result']))
  #4 (permalink)  
Antiguo 03/05/2006, 04:32
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
($row = mssql_fetch_assoc($_SESSION['result']))

no será:

($row = mysql_fetch_assoc($_SESSION['result']))

y sino prueba con:

($row = mysql_fetch_array($_SESSION['result']))
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 03/05/2006, 04:38
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Es que tengo que usar las funciones que php tiene par Microsoft Sql Server que es la Base de datos que estoy usando que se llaman igual que las de Mysql solo que cambia el inicio de la cabecera mssql por mysql es decir:

mysql_fetch_assoc asi se llama la función para mysql
mssql_fetch_assoc así se llama para sql server
  #6 (permalink)  
Antiguo 03/05/2006, 04:40
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
aah... vale.. mm.. yo de mysql se algo.. pero de sql server pez... lo siento..
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 03/05/2006, 04:47
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Puede que al pasar de una página a otra se pierda el resultado de la consulta de la base de datos. ¿Por que no guardas los datos (como un array) en la variable de sesión en vez de el 'mssql result resource'?
  #8 (permalink)  
Antiguo 03/05/2006, 04:59
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
El resultado de una consulta se guarda en una variable de tipo "recurso" (es una referencia a un recurso externo). Este tipo de variables no pueden ser guardadas en variables de sesion. Por lo que tengo entendido, php almacena los datos de las variables de sesion en un archivo utilizando una representacion como la que devuelve la funcion serialize(). Esta función trabaja bien con todo los tipos excepto con el tipo "resource".
Saludos.
  #9 (permalink)  
Antiguo 03/05/2006, 05:00
 
Fecha de Ingreso: abril-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Gracias,me parece una buena idea si el select es de una sola columna, pero si es de varias columnas como lo hago como propones?
  #10 (permalink)  
Antiguo 03/05/2006, 05:13
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Crea arrays y los asignas a variables de sesión.
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:00.