Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Arrays en sesión.

Estas en el tema de Arrays en sesión. en el foro de PHP en Foros del Web. Tengo un problemilla porque no estoy acostumbrado a trabajar con arrays. La primera cosa es ¿Como creo un array se sesión?¿Sería algo así? $_SESSION['listado']=array( "1"=>array( ...
  #1 (permalink)  
Antiguo 23/05/2014, 10:53
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 17 años
Puntos: 3
Arrays en sesión.

Tengo un problemilla porque no estoy acostumbrado a trabajar con arrays. La primera cosa es ¿Como creo un array se sesión?¿Sería algo así?

$_SESSION['listado']=array(
"1"=>array(
"puesto"=>"director"
),
"2"=>array(
"puesto"=>"vendedor"
),
)

El array no sería solo eso sino que aparte de "puesto" tendría otra clave que sería un código de persona. Pero esa clave se generaría en el código. ¿Como hago para darle los valores a esa clave? ¿Puedo hacer despues algo como esto que sigue?

$_SESSION['listado']=array(
$numero=>array(
"codigo"=>"$codigo
)
)
__________________
La imaginación es más importante que el saber. - Einstein
  #2 (permalink)  
Antiguo 23/05/2014, 11:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Arrays en sesión.

En principio, las variables de sesión te permiten almacenar cualquier tipo de contenido, sea arreglo o no.

Si tienes un arreglo por ejemplo

$personas=array(array('nombre'=>'juan perez','edad'=>39));

Puedes trabajar con el arreglo de manera normal y al final almacenarlo en sesión

$_SESSION['personas']=$personas.

O bien puedes trabajar directamente sobre la variable de sesión, no hay problema.

Si no estás acostumbrado a usar arreglos, te aconsejo primero practicar con ellos de forma simple, y luego meterlos en variables de sesión.
  #3 (permalink)  
Antiguo 23/05/2014, 12:35
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 17 años
Puntos: 3
Respuesta: Arrays en sesión.

Pero si en tu ejemplo no quiero poner las edades cuando defino el array ¿puedo hacerlo más tarde? ¿Como? Lo estoy intentando pero no me sale.

Si hago esto

$personas=array(array('nombre'=>'juan perez'));

y luego esto

$personas=array(array('edad'=>'39'));

esto no funciona:

echo $personas[nombre].' '.$personas[edad]
__________________
La imaginación es más importante que el saber. - Einstein
  #4 (permalink)  
Antiguo 23/05/2014, 13:22
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Arrays en sesión.

1) Creas un array dentro de otro, para acceder necesitas la produndidad

2) Destruyes el array en la siguiente asignacion
__________________
Salu2!
  #5 (permalink)  
Antiguo 23/05/2014, 13:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Arrays en sesión.

Una solución que se me ocurre de primera mano, es utiliza un índice en común para los datos que correspondan a cada registro, de este modo, los insertas en la variable de sesión, manipulada como un array multidimensional.

Código PHP:
Ver original
  1.  
  2. $_SESSION[$id]['nombre] = $nombre; //Por ejemplo: Juan
  3. $_SESSION[$id]['edad'] = $edad; //Por ejemplo: 43

Y tanto las variables $id, $nombre y $edad, deben contener datos que ya sea tú o el usuario de la aplicación, les haya asignado, recordando siempre que el $id debe ser único para que no sobre-escribas datos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 23/05/2014, 13:39
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Arrays en sesión.

@Alexis: mmmmmm mmmmmmm mmm


Cita:
Iniciado por Alexis88 Ver Mensaje
Una solución que se me ocurre de primera mano, es utiliza un índice en común para los datos que correspondan a cada registro, de este modo, los insertas en la variable de sesión, manipulada como un array multidimensional.

Código PHP:
Ver original
  1.  
  2. $_SESSION[$id]['nombre] = $nombre; //Por ejemplo: Juan
  3. $_SESSION[$id]['edad'] = $edad; //Por ejemplo: 43

Y tanto las variables $id, $nombre y $edad, deben contener datos que ya sea tú o el usuario de la aplicación, les haya asignado, recordando siempre que el $id debe ser único para que no sobre-escribas datos.

Saludos


Las variables de session son como cookies en el sentido de que se generan para cada usuario, tu nunca vas a sobreescribir (ni a ver) las sessiones de otros.

Todo eso que haces es innecesario*
__________________
Salu2!
  #7 (permalink)  
Antiguo 23/05/2014, 14:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Arrays en sesión.

Italico76, creo que no entendiste el punto. Nuestro amigo harvey, busca guardar en un array los datos de N personas, pudiendo insertar el nombre y la edad en momentos diferentes, tal y como él lo menciona. Entonces, del modo en que lo planteo, habría un array general, en el cual se designarían ubicaciones para los datos de cada persona, más o menos un modelo así:

Código PHP:
Ver original
  1.     0 => Array(
  2.             'nombre' => 'Juan',
  3.             'edad' => 45            
  4.         ),
  5.     1 => Array(
  6.             'nombre' => 'María'
  7.             'edad' => 38
  8.         )
  9. )

Cuando menciono lo de la posible sobre-escritura de datos, me refería al hecho de reemplazar los datos de uno de los arrays internos por otro en caso no se especifique el índice o si es que se repitiera.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 23/05/2014, 14:24
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 17 años
Puntos: 3
Respuesta: Arrays en sesión.

Cita:
Iniciado por Italico76 Ver Mensaje
1) Creas un array dentro de otro, para acceder necesitas la produndidad

2) Destruyes el array en la siguiente asignacion
No lo he entendido. Ten en cuenta que antes nunca he trabajado con arrays en PHP
__________________
La imaginación es más importante que el saber. - Einstein
  #9 (permalink)  
Antiguo 23/05/2014, 14:29
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Arrays en sesión.

@Alexis88 : mantenere una tabla o tablas completas en session seria posible si son pocos datos... pero lo veo como mal-diseno

Aunque claro... hay que respetar los requerimientos del usuario
__________________
Salu2!
  #10 (permalink)  
Antiguo 23/05/2014, 14:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Arrays en sesión.

Claro, pero creo que es lo que harvey busca hacer, poder insertar datos para un registro en particular en momentos diferentes y pues, haciéndolo así, lo lograría. Quizá si nos explicara a detalle lo que busca hacer, se podría pensar en un diseño más óptimo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 23/05/2014, 14:34
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Arrays en sesión.

@Alexis88 : la parte clara de ese diseño y no se si te das cuenta que si son 10.000 registros y 100 sessiones, tendrias 1.000.000 de registros en memoria ? (si cupieran!)

O sea.. cada usuario arrastraria en memoria su registro y el de lo demas ?
__________________
Salu2!
  #12 (permalink)  
Antiguo 23/05/2014, 14:40
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Arrays en sesión.

He leído y re-leído la descripción del hilo y en ningún momento menciona que vayan a ser N usuarios los que vayan a manipular la aplicación, más parece que estuviera haciendo pruebas para aprender a manipular sesiones. Viéndolo así, es decir, siendo una y solo una persona la que vaya a manipular la aplicación, tendría sentido hacerlo de ese modo, aunque si fuera a ser manipulada por más personas, se podrían hacer algunos cambios, pero repito, tendría que explicarnos con más detalle qué busca hacer para ver si es viable la solución o quizá sea necesario un replanteamiento del modelo.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 23/05/2014, 14:40
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 17 años
Puntos: 3
Respuesta: Arrays en sesión.

Alexis lo que me dices ya lo habia intentado y no me funcionaba pero era por un despiste en el nombre d euna variable, ahora asi me funciona:

$personas=array("1"=>array('nombre'=>'juan perez'));
$personas["1"]["edad"]='39';
echo $personas["1"]["nombre"]." ".$personas["1"]["edad"];
__________________
La imaginación es más importante que el saber. - Einstein

Etiquetas: arrays
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 01:17.