PHP - Sesiones

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Sesiones

Publicado por nicolás (8 intervenciones) el 13/04/2020 02:45:01
Buenas noches, tengo el siguiente problema, estoy haciendo un carrito de compras con sesiones, aquie es donde agrego la compra

1
2
3
4
5
$_SESSION['pedido'][]=array(
    'idsesion'=>key($_SESSION['pedido']),
    'id'=>utf8_encode($cliente['id']),
    'codigo'=>utf8_encode($cliente['codigo']),
);

pero resulta que este paso
1
'idsesion'=>key($_SESSION['pedido']),
me lo toma siempre en 0, salvo el primer elemento que me lo toma en null.

No puedo corregirlo y por ende no puedo eliminar o modificar los datos dentro de la variable de session

Me dan una mano¡?!

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.994
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Sesiones

Publicado por Julio (830 intervenciones) el 13/04/2020 08:19:07
Hola.

¿Dentro de $_SESSION["pedido"] estás añadiendo al mismo elemento $_SESSION["pedido"]? No parece tener mucho sentido eso.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Sesiones

Publicado por nicolás (8 intervenciones) el 14/04/2020 01:54:13
No, lo que estoy intentando hacer, es encontrar la posición de ese Arrau que está dentro de la sesión con la función key
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.994
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Sesiones

Publicado por Julio (830 intervenciones) el 14/04/2020 08:43:44
Ah vale, no había visto la función key. De todas formas, eso no te va a funcionar. La función key va a buscar el índice del elemento pero, ¿de qué elemento? Le estás pasando el propio array que estás creando y, como no lo encuentra, primero te pone NULL. Luego en la segunda vez, como sí lo encuentra, lo que le estás pasando es el array general, así que el valor de su índice es 0. No le estás pasando la posición del elemento y, además, ¡no es necesario!

Mira, te pongo un ejemplo. Tú haces lo siguiente, por ejemplo:

1
2
3
4
5
6
7
8
9
$_SESSION['pedido'][] = array(
	'id' => utf8_encode(1),
	'codigo' => utf8_encode(12345)
);
 
$_SESSION['pedido'][] = array(
	'id' => utf8_encode(2),
	'codigo' => utf8_encode(67890)
);

Como no le estás poniendo un índice cada vez que añades un nuevo elemento, él ya se guarda internamente un índice numérico. Si haces var_dump($_SESSION) verás que te imprime lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
array(1) {
  ["pedido"]=>
  array(2) {
    [0]=>
    array(2) {
      ["id"]=>
      string(1) "1"
      ["codigo"]=>
      string(5) "12345"
    }
    [1]=>
    array(2) {
      ["id"]=>
      string(1) "2"
      ["codigo"]=>
      string(5) "67890"
    }
  }
}

Si te fijas, dentro de ['pedido'] tiene dos elementos, uno identificado con el valor 0 y el otro identificado con el valor 1 (líneas 4 y 11). Esas son sus posiciones, no hace falta que te las guardes dentro, ahí están. Podrías luego recorrer los datos así:

1
2
3
foreach ($_SESSION['pedido'] as $key => $value) {
	echo 'En la posición ' . $key . ' tenemos el id ' . $value['id'] . ' y código ' . $value['codigo'] . '<br>';
}

Y te aparecería por pantalla:

1
2
En la posición 0 tenemos el id 1 y código 12345
En la posición 1 tenemos el id 2 y código 67890

Como ves, recorriéndolo aquí ya estás viendo en qué posición está cada artículo (en la variable $key).

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Sesiones

Publicado por nicolás (8 intervenciones) el 14/04/2020 19:10:03
Impecable!!! Muchas gracias, con esto solucionado!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar