Foros del Web » Programando para Internet » PHP »

Carrito

Estas en el tema de Carrito en el foro de PHP en Foros del Web. Hola buenas tardes os explico mi problema: estoy haciendo un carrito en php con sesiones todo lo tengo bien ya menos un par de cosillas ...
  #1 (permalink)  
Antiguo 27/10/2003, 10:36
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
Carrito

Hola buenas tardes os explico mi problema:

estoy haciendo un carrito en php con sesiones todo lo tengo bien ya menos un par de cosillas que no se como hacerlas y son las siguientes:

1º cuando ya tengo la sesion creada con los articulos, como puedo editar una linea en concreto para cambiar solo las unidades?¿
2º como puedo eliminar uan linea de articulo y que se me queden las demas?¿

no se si me explique bien pero de antemano agradezco vuestra ayuda

Un Saludo
  #2 (permalink)  
Antiguo 27/10/2003, 11:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema en este caso no son las sesiones ... sino como gestionas los datos que guardas en tu sesión.

La sesión es solo el camino por donde propagas tus datos a los scripts/páginas que los requieran. Ejemplo .. la sesión es la "autopista" .. Ahora hace falta ver si por la autopista vas en un autobus las variables que usas (esto sería equivalente a un array, matriz, arreglo ..) o van andando xD (esto sería equivalente a variables por separado) .. o incluso van en un bus articulado jeje (esto serían arrays ..pero multidimensionales).

Bueno .. no sé si la lié con las analogías .. pero lo que quiero expresarte que si no nos dices que código usas para guardar tus variables en tu sesión .. no podemos aconsejarte que debes hacer para editar un dato concreto ..

Lo lógico es que uses arrays .. así que modificar un elemento lo tendrás que hacer por el indice que corresponda. Esto depende de cómo asocies tus elementos del carrito en ese array (si lo usas) .. Lo mismo es aplicable para borrado de una "linea" del artículo (supongo que te refiriras a un item completo de una compra).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 27/10/2003 a las 11:42
  #3 (permalink)  
Antiguo 27/10/2003, 11:43
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
asi guardo los datos:
Código PHP:
  $_SESSION['Cesta'][$id]+=$unidades;
  
$_SESSION['total'] += $totallinea
Gracias cluster

Un Saludo
  #4 (permalink)  
Antiguo 27/10/2003, 11:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si te das cuenta .. estas usando un array ..

Esa variable "total" está de más .. Debes de contar el total de elementos del array que usas para saber exactamente cuantos tienes (y esto lo vas a necesitar hacer así ahora .. pues ya quieres borrar elementos y demás historias ..)

* Borrar un elemento de tu array simplemente es usar:
unset()

En tu caso:

Código PHP:
unset($_SESSION['Cesta'][$id]); 
* Editar manualmente la cantidad de un elemento .. Debes priméro de localizaro por su "ID" y de ahí hacer el formulario que pidas el nuevo valor para que puedas hacer:

Código PHP:
$_SESSION['Cesta'][$id] = $nueva_cantidad
Es decir .. en tu carrito debes generar links tipo:

editar_carrito.php?id=nº

Para que tu formulario use el ID ($id) y la $nueva_cantidad ..

* Contar los elementos (items) que tiene tu carrito es sólo contar el total de elementos de ese array:

Código PHP:
$total=count($_SESSION['Cesta']); 
Y lo usas en lugar de tu variable de sesión que guardabas ese total ...

Esto es el "concepto" .. ahora te toca a ti ponele algo de empeño y hacerlo .. Las dudas que tengas (con código en mano) las preguntas si lo deseas. Acuerdate que hay que validar si los "ID" que voy a borrar/editar existen en tu cesta (array 'Cesta' ) así que para este caso te vendrá bien usar in_array() para comprobarlo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 28/10/2003, 09:32
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 14 años, 9 meses
Puntos: 1
muchas gracias cluster ya lo averigue antes de que pusieras el mensaje, pero no tuve tiempo te contestarte asiq eu gracias por tu tiempo...

te explico el valro del total no es los articulos ese si lo hago con un count como pusiste tu aqui, el total es el eso el total del carrito de compra

Mil Gracias

Un Saludo
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 05:21.