Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/10/2010, 11:42
Avatar de silvanha
silvanha
 
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Ayuda con carro compra online con PHP

A ver, según entiendo .. estas tomando el total de productos que quiere agregar al carrito, con un campo de texto..

y después llamas el número de veces que sea necesario a additem(), toma en cuenta que ahí recibes, el id, el nombre y el costo del producto.. hasta ahí lo veo bien pero el additem tiene:

Código PHP:
Ver original
  1. public function additem($id, $name, $cost) {
  2.         foreach($this->cart as $key=>$items) {
  3.             if($items['id'] == $id) {
  4.                 $this->cart[$key]['quantity']++;
  5.                 return;
  6.             }
  7.         }
  8.         $this->cart[] = array('id' => $id,
  9.         'name' => $name,
  10.         'cost' => $cost,
  11.         'quantity' => 1);
  12.     }

Que verifica en la primera condición, si ya hay algún elemento con el ID del producto que se intenta agregar, entonces solo se suma uno, en caso contrario no hace nada. Saliendo del ciclo, al arreglo cart, asigna, el id, el nombre, costo y cantidad 1.. en teoría funciona, porque no intentas manejar una variable dentro de tu clase que lleve el apuntador del último elemento insertado en el arreglo.. o bien cuenta el total de elementos del carro y al final anexalo, podrías verificar antes si es que el carro tiene al menos un producto antes de anexar el siguiente..

en esta misma función additem();, manda con un echo el count($this->cart[]); para ver si realmente hay elementos antes.. se me ocurre que pierde el apuntador y por eso los encima

ahí te sigo leyendo.. :)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)