Foros del Web » Programando para Internet » PHP »

arrays y sessiones

Estas en el tema de arrays y sessiones en el foro de PHP en Foros del Web. Hola, lo que quiero realizar es para un carro de compras, el tema es el siguiente. al vinculo que se crea en cada producto le ...
  #1 (permalink)  
Antiguo 09/04/2005, 08:53
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta arrays y sessiones

Hola, lo que quiero realizar es para un carro de compras, el tema es el siguiente.
al vinculo que se crea en cada producto le pongo que pase la id del producto, y lo recibo de esta forma:

$_SESSION['producto['.$_SESSION['arts'].']']=$pid;

donde arts es el numero (cantidad) del producto que se acaba de agregar, y $pid el id del producto, entonces, supongamos que ya hay 4 productos agregados y agrego uno mas cuya id es 10 entonces lo de arriba se traduciria en:
$_SESSION['producto['5']']=10;

hasta ahi todo elegante y brillante

el tema es que quiero que si el producto ya esta en el carro, no se agregue como otro articulo, sino que halla algo que me guarde la cantidad de por cada producto, supongo que se hace con array pero no manejo muy bien esos arrays, alguien me puede dar una mano?

__________________
-----------------
_
__|_|__
º(-_-)º
  #2 (permalink)  
Antiguo 09/04/2005, 09:47
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 14 años, 4 meses
Puntos: 7
recorres el arreglo, y luego miras si hay algun elemento igual al seleccionado lo sumas..


Código PHP:
while($r count($_SESSION['producto']))
            {
            if (
$_SESSION['producto'][$r]==$pid)
...
incerementas el valor de tu producto... 
Chaop!
  #3 (permalink)  
Antiguo 09/04/2005, 09:59
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 14 años, 7 meses
Puntos: 0
luchope, disculpame pero no te entendi muy bien, osea te entendi en partes.
lo que quiero saber es como hago para guardar el producto que se agrego mas la cantidad de cada producto.
__________________
-----------------
_
__|_|__
º(-_-)º
  #4 (permalink)  
Antiguo 09/04/2005, 10:10
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 14 años, 4 meses
Puntos: 7
Bueno debes tener clara una ruta de variables, o sea un algoritmo...

Por ejemplo...
Ingreso un producto...
Si no existe (en el arreglo) lo inserto (con array_push)...
si ya existe (en el arreglo) no lo inserto como uno nuevo, sino que a la cantidad que ya esta del que existe (en el arreglo), le sumo la cantidad del que estoy insertando....

Chaop!

PD: aca tienes un ejemplo de lo que te digo...
http://www.desarrolloweb.com/articul....php?manual=56
  #5 (permalink)  
Antiguo 09/04/2005, 10:27
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 14 años, 7 meses
Puntos: 0
a ver, si la logica de lo que tengo que hacer es mas que claro. lo que quiero saber es que
si tengo
$_SESSION['producto['5']']=10;

lo que tengo como dato es que el quinto producto del carrito es el producto con la id 10 esta, y no que se ha puesto en el carro 10 unidades del producto con la id 5.

entonces supongamos que ya tengo 5 productos en el carro y que el segundo producto (pongamoles que es el de la id 25) que habia agregado es el mismo que el proximo que voy a agregar (el producto num 6 del carrito) entonces quiero que el producto con id 25 tenga la cantidad 2
__________________
-----------------
_
__|_|__
º(-_-)º
  #6 (permalink)  
Antiguo 09/04/2005, 10:42
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 14 años, 4 meses
Puntos: 7
Despues de recorrelo y verificar que existe...


Código PHP:
$_SESSION['producto['25']']=$_SESSION['producto['25']']+
Chaop!
  #7 (permalink)  
Antiguo 09/04/2005, 10:52
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 14 años, 7 meses
Puntos: 0
NO ME ENTENDESSSSSS

$_SESSION['producto['25']']=$_SESSION['producto['25']']+1

con eso me estas diciendo que el articulo 25 del carro es igual al articulo 25 del carro + 1

gueno no te quiero molestar mas espero que llegue alguien que me entienda lo que estoy queriendo decir, igualmente muchas gracias por tus respuestas.
__________________
-----------------
_
__|_|__
º(-_-)º
  #8 (permalink)  
Antiguo 09/04/2005, 11:46
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 14 años, 7 meses
Puntos: 0
aver lo que quiero que me digan es como le doy valor y leo un array multidimensional, ya que le que tengo hasta ahora es unidimensional
$producto['5']=10; osea el producto 5to en agregarse es el de la id 10
yo quiero que si despues de agregar varios productos agrego de nuevo el de la id 10 no me haga otro elemento del array sino que tenga el $producto['5'] una dimension mas que se la cantidad de veces que se agrego el producto con id 10
__________________
-----------------
_
__|_|__
º(-_-)º
  #9 (permalink)  
Antiguo 09/04/2005, 11:47
Avatar de hunab  
Fecha de Ingreso: febrero-2005
Ubicación: Barcelona
Mensajes: 133
Antigüedad: 12 años, 9 meses
Puntos: 1
A ver, yo creo que sera mucho más fácil si lo planteas de otra manera, podrias plantearlo como $_SESSION[id]=cantidad; donde el id es igual al id del producto y la cantidad al numero de productos con ese id, no hace falta utilizar dos variables de sesion...
ademas no creo que tengas problemas de nombres porque sabes que todos los indices de $_SESSION numericos equivalen a productos y todos los indices de string equivalen a otra cosa...
entonces seria tambien mucho más fácil insertar un nuevo producto o incrementar un producto ya existente:
Código PHP:
function insertar_producto($id,$cantidad=1){
  
$encontrado=false
  foreach(
$_SESSION as $indice=>$valor){
      if (
$indice==$id){
            
$_SESSION[$id]+=$cantidad;
            
$encontrado=true;
      }
  }
  if (
$encontrado==false$_SESSION[$id]=$cantidad;

Esto se puede optimizar muxo mas y no lo he probao, pero es para que tengas una idea...
Pero si sigues con tu idea te será util la funcion in_array(), que te servira para saber si ya existe el producto

Un saludo!
__________________
Marcio Barrios
marciobarrios.com // artículos sobre estándares y desarrollo web

Última edición por hunab; 09/04/2005 a las 11:51
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 21:56.