Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Copiar matriz a variable de session (https://www.clubdelphi.com/foros/showthread.php?t=40494)

mieltxo 19-02-2007 12:47:18

Copiar matriz a variable de session
 
Buenos días,

¿Se puede copiar una matriz a una variable de sesión?

$resultado = mysql_query("SELECT peticion, fichero, nombre, plazo, carga, TO_DAYS(tiempoverific)-TO_DAYS(fecha), estado, usuario, verificador from trabajos where (estado<>'REALIZADO') and (fecha between '".$_POST["plazo1"]."' and '".$_POST["plazo2"]."') order by plazo" ,$conexion) or die("La consulta fall&oacute;: " . mysql_error());

Quisiera hacer algo como lo siguiente:

$_SESSION['resnew']=$resultado;

Si alguien tiene idea se lo agradecería.. incluso si supiera hacerlo sin ser una variable de session..

Un saludo

kayetano 19-02-2007 14:31:45

Hola

Cita:

Empezado por mieltxo
¿Se puede copiar una matriz a una variable de sesión?

$resultado = mysql_query("SELECT peticion, fichero, nombre, plazo, carga, TO_DAYS(tiempoverific)-TO_DAYS(fecha), estado, usuario, verificador from trabajos where (estado<>'REALIZADO') and (fecha between '".$_POST["plazo1"]."' and '".$_POST["plazo2"]."') order by plazo" ,$conexion) or die("La consulta fall&oacute;: " . mysql_error());

Quisiera hacer algo como lo siguiente:

$_SESSION['resnew']=$resultado;

Lo primero que debes saber es que el resultado de mysql_query con una sentencia SELECT no es una matriz sino un RESOURCE (recurso), es decir, una variable especial que debe ser manipulada con funciones especiales.

Por lo tanto te aconsejo que utilices cualquiera de las siguientes funciones:
- MYSQL_FETCH_ARRAY
- MYSQL_FETCH_ROW
- MYSQL_FETCH_ASSOC
para generar un array o matriz y despues asociarla a una variable de sesión.

De todas formas he repasado el manual de PHP4 y no encuentro ningún problema para hacer lo que tu estás intentando.

mieltxo 19-02-2007 16:23:29

Buenas tardes kayetano, gracias por tu interés,

Las funciones que me comentas ya las utilizo para mostrar valores y demás así que si no te importa voy a definir un poco mejor cual es mi problema:

Tengo un arbol de if´s anidados y necesito copiar ciertos "resources" de tipo:

$resultado = mysql_query("SELECT peticion, fichero, nombre, plazo, carga, TO_DAYS(tiempoverific)-TO_DAYS(fecha), estado, usuario, verificador from trabajos where (estado<>'REALIZADO') and (fecha between '".$_POST["plazo1"]."' and '".$_POST["plazo2"]."') order by plazo" ,$conexion) or die("La consulta fall&oacute;: " . mysql_error());

$_SESSION['resnew']=$resultado;

Entonces, habia pensado 'asignar' ese resultado a una variable global para poder incluirla en otro if anidado..

$resultado=$_SESSION['resnew'];

Lo que ocurre es que creo que la asignación no se realiza bien, ya que me muestra el Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

roman 19-02-2007 18:37:57

No puedes guardar ese tipo de datos en una sesión, tal como se lee en el manual:

Cita:

Some types of data can not be serialized thus stored in sessions. It includes resource variables or objects with circular references
// Saludos

kayetano 19-02-2007 20:20:46

Hola

Aunque roman ya ha contestado, yo he realizado una pequeña prueba y si estamos en un script la asignación funciona perfectamente pero cuando pasamos de un script a otro se pierde el valor de la variable de sesión.

mieltxo 20-02-2007 09:57:08

Vaya.. pues tendre que pensar en otra estrategia.

Gracias por vuestra ayuda

Un saludo


La franja horaria es GMT +2. Ahora son las 20:04:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi