Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2007, 12:41
Helheim
 
Fecha de Ingreso: junio-2004
Mensajes: 232
Antigüedad: 19 años, 11 meses
Puntos: 0
Problema con cesta de la compra

A ver si se explicarme o, en su defecto, si alguien me entiende:

Estoy tratando de implementar un carro de la compra (con ayuda de alguna web y de algun usuario) pero no se por que cuando trato de introducir elementos en la cesta, no los introduce como debiera... La primera vez que meto un producto, no lo muestra al llamar al metodo imprime_carrito(); sin embargo, en la segunda ocasion en que meto el mismo producto, si lo muestra. Luego, si meto otro producto distinto, lo introduce pero dos veces.... En fin, lo mas raro del mundo. Evidentemente algo no esta bien pero no logro saber el que, asi que aqui os pongo el codigo para ver si alguno de vosotros da con la solucion:

Código PHP:
class carrito {
    
//atributos de la clase
    
var $indiceArray;
       var 
$num_productos;
    var 
$array_unidades_prod;
       var 
$array_id_prod;
       var 
$array_nombre_prod;
       var 
$array_precio_prod;
    var 
$array_borrado_prod;

    function 
__construct () {
    
//inicializamos el numero TOTAL de productos a 0
           
$this->num_productos=0;
    
//Esto va a llevar el indice del array de productos y se inicializa a 0
        
$this->indiceArray=0;
    }
    
    
//Introduce un producto en el carrito. Recibe los datos del producto
    
function introduce_producto($id$nombre$precio$unidades){
        
//verificamos si no hay productos registrados..
       
if($this->num_productos<=0)
            {
            
//registramos el producto
            
$this->array_id_prod[$this->indiceArray]=$id;
            
$this->array_nombre_prod[$this->indiceArray]=$nombre;
            
$this->array_precio_prod[$this->indiceArray]=$precio;
            
$this->array_unidades_prod[$this->indiceArray]=$unidades;
            
$this->indiceArray++;
            
$this->num_productos++;
            }else
                
//ahora verificamos si el producto enviado ya existe
                //si es asi para solo aumentar sus unidades
                    
{
                    
//le enviamos el ID y cuantas unidades va a checar si existe
                    
if($this->existeProducto((int)$id,(int)$unidades)){
                            
//aumentamos solo las unidades del producto enviado
                            
}
                            else {
                                    
//registramos un nuevo item
                                    
$this->array_id_prod[$this->indiceArray]=$id;
                                    
$this->array_nombre_prod[$this->indiceArray]=$nombre;
                                    
$this->array_precio_prod[$this->indiceArray]=$precio;
                                    
$this->array_unidades_prod[$this->indiceArray]=$unidades;
                                    
$this->indiceArray++;
                                    
$this->num_productos++;
                                    }
                    }
        } 
P.D: Dividire la consulta en varios mensajes....

Última edición por Helheim; 04/09/2007 a las 12:46