Foros del Web » Programando para Internet » PHP »

Modificar valor en array de variable de Sesion

Estas en el tema de Modificar valor en array de variable de Sesion en el foro de PHP en Foros del Web. Hola a todos, estoy desarrollando un carrito de compras en el cual puedo agregar los productos en una variable de sesion con el siguiente script ...
  #1 (permalink)  
Antiguo 27/02/2013, 00:19
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 15 años, 5 meses
Puntos: 12
Pregunta Modificar valor en array de variable de Sesion

Hola a todos, estoy desarrollando un carrito de compras en el cual puedo agregar los productos en una variable de sesion con el siguiente script

Código PHP:
$query "SELECT nombre, precio, foto1 FROM producto WHERE id_producto = '".$idProducto."';";
conectar();
$resultado mysql_query($query);
if (
mysql_num_rows($resultado)==1) {
    
$detalles mysql_fetch_assoc($resultado);
    
$carrito[$idProducto] = array('idProducto' => $idProducto'Cantidad' => 1'Nombre' => $detalles['nombre'], 'Precio' => $detalles['precio'], 'Foto'=>$detalles['foto1']);
    
$_SESSION['carrito'] = $carrito;
}
else echo 
"El producto no existe!"
Ahora lo que quiero hacer es modificar la cantidad de un determinado producto que se encuentre ya en el carrito (en el caso quiera mas de una unidad de el producto) es posible la modificación o necesariamente tendría que eliminarlo y volverlo a cargar con la nueva cantidad.

Gracias de antemano a quien pueda darme una mano.

Ayuda porfavor, me trabe en esta parte
__________________
Mi web --> www.CarlosPC.net
  #2 (permalink)  
Antiguo 27/02/2013, 00:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Modificar valor en array de variable de Sesion

Si ya tienes la ID del producto, puedes modificar $_SESSION['carrito'][$idProducto]['cantidad'] haciendo la operación que se requiera.

De hecho, con un if basta para saber si debes agregar o modificar:
Código PHP:
Ver original
  1. if( isset($_SESSION['carrito'][$idProducto])) {
  2.      // El producto ya existe en el carrito, modificas
  3. } else {
  4.      // El producto no existe en el carrito, lo agregas
  5. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 27/02/2013, 00:57
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Modificar valor en array de variable de Sesion

Mmm hola Triby, te refieres a que si, por ejemplo, el idProducto es 3, podría hacer lo siguiente:
Código PHP:
Ver original
  1. $_SESSION['carrito'][3]['Cantidad'] = 4

Y la cantidad habria cambiado a 3, lo que originalmente fue 1?

Esto de los manejos de los array me esta mareando un poco :D
__________________
Mi web --> www.CarlosPC.net
  #4 (permalink)  
Antiguo 27/02/2013, 01:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Modificar valor en array de variable de Sesion

Bueno, si vas a agregar a lo que ya tienes, entonces debes usar +=, es decir:

Código PHP:
Ver original
  1. $cantidadActual = 3;
  2. $cantidadNueva = 5;
  3.  
  4. $cantidadActual += $cantidadNueva; // $cantidadActual queda en 8
  5. $cantidadActual = $cantidadNueva; // $cantidadActual queda en 5
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 27/02/2013, 01:48
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Modificar valor en array de variable de Sesion

Permitanme la intromisión porque hay algo que no me queda claro (estoy un poco frio con mi php)

Si el SQL identifica un id en particular, la sesion 'carrito', no sería exclusiva de ese producto y se haría directamente algo asi
p1.php

Código PHP:
Ver original
  1. <?php
  2. $carrito = array('idProducto' => 'id_001', 'Cantidad' => 1, 'Nombre' => 'nombre_articulo', 'Precio' => 2500, 'Foto'=>'001.jpg');
  3. $_SESSION['carrito'] = $carrito;
  4. print_r($_SESSION['carrito']);
  5. ?>
  6. <p>
  7. <a href="p2.php?incremento=2">incremento cantidad(2) en producto <b><?php echo $_SESSION['carrito']['idProducto']; ?></b></a>
  8. </p>

p2.php

Código PHP:
Ver original
  1. <?php
  2. $_SESSION['carrito']['Cantidad'] = $_SESSION['carrito']['Cantidad']+$_GET['incremento'];  
  3. print_r($_SESSION['carrito']);
  4. ?>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 27/02/2013, 01:56
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Modificar valor en array de variable de Sesion

El detalle es que en carrito hay mas de un producto almacenado es por ello que puse
Código PHP:
Ver original
  1. $carrito[$idProducto] = array('idProducto' => $idProducto, 'Cantidad' => 1, 'Nombre' => $detalles['nombre'], 'Precio' => $detalles['precio'], 'Foto'=>$detalles['foto1']);

Y lo de que deseo es que especificando el $idProducto, pueda cambiar la 'Cantidad' que por defecto es de 1. Ahí es donde estoy dudando sobre el código a utilizar...
__________________
Mi web --> www.CarlosPC.net
  #7 (permalink)  
Antiguo 27/02/2013, 02:13
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Modificar valor en array de variable de Sesion

Cita:
Iniciado por carlospc Ver Mensaje
El detalle es que en carrito hay mas de un producto almacenado es por ello que puse
Código PHP:
Ver original
  1. $carrito[$idProducto] = array('idProducto' => $idProducto, 'Cantidad' => 1, 'Nombre' => $detalles['nombre'], 'Precio' => $detalles['precio'], 'Foto'=>$detalles['foto1']);

Y lo de que deseo es que especificando el $idProducto, pueda cambiar la 'Cantidad' que por defecto es de 1. Ahí es donde estoy dudando sobre el código a utilizar...
Pero $idProducto no es único para cada artículo?
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 27/02/2013, 02:18
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Modificar valor en array de variable de Sesion

Exacto, pero todos están en $carrito que es un array, ahora es a su vez en $carrito se guarda un array con los detalles por cada producto, mi dilema es como accedo a ese producto en específico indicando su id y modificar la cantidad que ya tiene.

En eso me estoy atarantando :)
__________________
Mi web --> www.CarlosPC.net
  #9 (permalink)  
Antiguo 27/02/2013, 03:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Modificar valor en array de variable de Sesion

Lo primero, sería sacar $_SESSION['carrito'] = $carrito; del while, para evitar sobreescribirlo en cada iteración.

Ya después haces lo del print_r que sugiere emprear para ver si el array se está creando correctamente.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 27/02/2013, 09:40
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: Modificar valor en array de variable de Sesion

Claro, lineas anteriores hago eso:
Código PHP:
Ver original
  1. if(isset($_SESSION['carrito'])) $carrito = $_SESSION['carrito'];

Luego cargo los productos y los devuelvo a $_SESSION['carrito'];

Lo que no aún no se me ocurre es como modificar la Cantidad? alguien por favor...
__________________
Mi web --> www.CarlosPC.net
  #11 (permalink)  
Antiguo 27/02/2013, 18:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Modificar valor en array de variable de Sesion



Tanto Emprear como yo, te dimos un par de sugerencias; al menos inténtalo y, si no funciona, regresa y nos enseñas el código que no te está funcionando.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: carrito, compras, modificar, session, valor, variable
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 19:45.