Arrays en cookies y MySql

java

nas gente ;)

Me imagino que se puede, pero no se porqué pero no puedo. Me explico.

Yo tengo un array con los datos del usuario, tal que

$drUser

que contiene
$drUser['nombre']
$drUser['apellidos']
...

Tengo una tabla 'sesiones' en la que guardo el usuario que está online, y quería guardar en el campo 'value' el $drUser.

Así, al hacer un select de 'sesiones', obtener ese 'value' como si fuera un array, y poder seguir trabajando.

osea.

Hago un select de usuarios cargando el user 1

$drUser = mysql_fetch_array($resultado_sql_user_1);

//lo guardo en la sesion

$sql_isnert = "insert into sesiones (value) VALUES('$drUser')";

//Luego, cuando quiero obtener la info de la BBDD hago un select de todos los registros de 'sesiones'

while ($drUserOnLine = mysql_fetch_array($resultado_sql_usersOnLine))
{
//Aquí problema
$drUserActual = $drUserOnLine ['value'];
echo $drUserActual['nombre'];
echo $drUserActual[apellidos'];
}

Donde pone "aquí problema" es porque dentro de $drUserActual se carga un string "Array" :(

COMO hago para que me guarde un array en BBDD, o si lo estoy haciendo ya bien, como hago para al cargarlo, decirle que es un array???

Lo mismo quiero hacer con cookies, me gustaría guardar el array en la cookie, y luego recuperarlo.

A ver si alguien me ayuda, que llevo ya unas cuantas horitas rallao jeje

ciassss

keco

Q raro me resulta eso XD, lo haces un poco complicao, xq no guardas el nombre y el apellido, en un campo distino en la BBDD y luego los sacas asi:

while ($row = mysql_fetch_array($elquery))
{
echo $row[nombre];
echo $row[apellido];
}

Es que no se, creo q t has complicao muxo la vida, vamos me parece a mi... y yo un poco nuevo en esto.

java

Ya, es como lo tenía antes, pero la dimension del array es muy grande, y paso de crear mil campos, o crear mil variables de sesion :(

a mi me da que es posible, ahora estoy probando con implode() explode(), que te pasa de array a string, po rmedio de unas separaciones que le marcas tu, pero resulta que te guarda el valor del array pero no la key, osea.

$drUser["Nombre"] = "javier";

$drTmp = implode("||",$drUser);
$drUserFinal = explode ("||",$drTmp);

si hago

echo $drUser["Nombre"];
no saca nada, porque "Nombre" lo pierde,
tengo que acceder así

echo $drUser[0]

:(

alguna otra sugerencia??

eXistencial

Cuando una varaible contiene un array, la variable toma el valor de de "Array" cuando se ejecuta la variable.

Si lo que quieres hacer es que en una cookie te guarde mas de un valor lo que haces (lo que hago yo) es esto:

$string = "$primeraVar $segundaVar";
setcookie ("galleta", "$string", time()+64800, "", "", "");

y luego para recuperarla...

$galleta = explode(" ", $_COOKIE['galleta']);

Y tendrias:
$primeraVar = $galleta[0];
$segundaVar = $galleta[1];

Habe si es esto lo que quieres.

Abreu

$drUser = mysql_fetch_array($resultado_sql_user_1);
$sql_isnert = "insert into sesiones (value) VALUES('$drUser')";

$drUser es un estructura que no se puede guardar en una base de datos. Prueba a hacer el query update asi:

INSERT INTO sesiones (value) VALUES ('$drUser[0] $drUser[1]')

java

si, lo he hecho con el explode()

El problema que tenía es que me duplicaba los valores el explode, así que he creado una función, controlo eso, y ya está.

Osea,

//arrayToString es un funcion en la que hago el explode controlando repeticiones
$strTmp = arrayToString($druser);
//hago update en BD y actulizo Cookie todo con $strTmp

[...]

//Cuando leo de base de datos y de la cookie lo hago con implode()

Y funciona guay, la verdad es que es mucho más comodo, que crearte 8 variables de sesion, así con una te olvidas de todo.

cias por la ayuda!

Usuarios habituales

  • java
  • Abreu
  • eXistencial
  • keco