Despúes de cada compra "desregistro" la variable-array de sesión "Carrito" borrando todo su interior (supongo), voy a pegar un trozo de código porque ya no se por donde cojer esto.
Este es el código del archivo que llama a la clase carrito para isertar la cantidad.
Código:
Ya digo el problema es que me inserta aveces 2 unidades y otras 1 ,cuando tiene que ser siempre 1 , cuando el artículo no existe claro ya que en este caso tiene que sumar 1. Parece como si guardara en algunas posiciones array_qty[$pos] la cantidad 2 y no entiendo porque narices lo hace, se supone que al Desregistrar el array se borra todo ¿no?.Archivo meter_artículo.php
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"],$_GET["img"],$_GET["ref"]
,$_GET['qty']);
Archivo Classe carrito
function introduce_producto($id_art,$nombre_prod,$precio_prod,$img,$ref,$qty ){
$exist=false;
//Comrpobamos que la ID del articulo se encuentre ya en el carrito
if (@in_array ($id_art ,$this->array_id_art) )
{
foreach ( $this->array_id_art as $pos => $value )
{
if ( $id_art == $value)
{
//Actualiza la cantidad de unidades de un artículo determinado y llama a la función que actualiza el precio //total del artículo
//actualizamos las cantidades de los productos sumándoles 1 solamente
$qty=$this->array_qty[$pos] + 1 ;
$this->array_qty[$pos]=$qty; //Esto creo que sobra pero tampoco da error
$this->update_cart ($pos,$qty);
$exist=true;
}
}//fin del foreach
} //fin de in_array
//Esto se ejecuta cuando no pertenece al array la ID de ese artículo , por eso no entiendo lo que falla , ya que ademas de igualarlo a 1
//le suma el 1 de atrás ¿porque?
if (!$exist)
{
$this->array_qty[$this->num_productos]=1;
$this->array_id_art[$this->num_productos]=$id_art;
$this->array_name[$this->num_productos]=$nombre_prod;
$this->array_price[$this->num_productos]=$precio_prod;
$this->array_img[$this->num_productos]=$img;
$this->array_price_total[$this->num_productos]=$this->array_price[$this->num_productos];
//guardamos el nombre de la imagen de cada producto en array
//$this->array_ref_prod[$this->num_productos]=$ref;
$this->num_productos++;
}
}
Desregistrar array de sesión
Y esto lo hago despúes de cada compra , una vez se le da a Conformar compra.
unset ($_SESSION["ocarrito"] );
session_destroy();
Un saludo y gracias de antemano por la ayuda que siempr brindáis .
He creado para rematar la faena un método que al terminar la compra borra tanto las cantidades del array_qty como del array_Id , es decir donde estan las id de los artículos y sus cantidades, este método no debería de hacer falta , ya que se supone que al hacer unset y session_destroy estoy borrando TODA la sesión.
este es el método , y aún así cuando le da la gana mete 2 unidades en vez de 1
function borrar_qty () {
for ($i=0; $i<count($this->array_qty) ;$i++ )
{
//Borra todas las cantidades de la memoria
$this->array_qty[$i]=0; //Esto para dajarlas todas a 0
$this->array_id_art[$i]=0; //borramos los Ids de los artículos
}
}

,y tampoco es eso lo que preguntaba pero bueno de todos modos gracias por intentar ayudarme.
