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++;
}
}
}