Error con arrays
Publicado por Sergio (112 intervenciones) el 04/01/2022 20:16:41
Buenas tardes. A ver si me podéis ayudar. Tengo este código en php
Lo que hace:
Si no hay creada una variable de sesión, la crea con un producto. Esto lo hace bien, pero si quiero añadir otro producto distinto, no lo agrega, sino que le suma 1 al primero que se creó con la sesión.
Por la url llega bien el id. Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
session_start();
include "php/conexion.php";
$obj=new conectar();
$conexion=$obj->conexion();
if(isset($_SESSION['carrito'])){
// si existe la variable de sesión, buscamos si este producto ya estaba agregado al carrito
if(isset($_GET['idropa'])){
$id = $_GET['idropa'];
$arreglo = $_SESSION['carrito'];
$encontro = false;
$numero = 0;
for($i=0; $i < count($arreglo); $i++){
if($arreglo[$i]['Id'] == $id){
$encontro = true;
$numero = $i;
}
}
if ($encontro = true){
$arreglo[$numero]['Cantidad'] = $arreglo[$numero]['Cantidad'] + 1;
$_SESSION['carrito'] = $arreglo;
}else{
// No estaba la prenda en el carrito
$id = $_GET['idropa'];
$prenda = '';
$precio = '';
$imagen = '';
$sql_mujer = "SELECT * FROM detalles_ropa inner join
ropa on detalles_ropa.idropa = ropa.id_ropa
where detalles_ropa.idropa = '{$id}'";
$resultado = mysqli_query($conexion, $sql_mujer);
$fila = mysqli_fetch_array($resultado);
$prenda = $fila['descripcion'];
$precio = $fila['precio'];
$imagen = $fila['imagen'];
$arreglonuevo[] = array(
'Id' => $id,
'Prenda' => $prenda,
'Precio' => $precio,
'Imagen' => $imagen,
'Cantidad' => 1
);
array_push($arreglo, $arreglonuevo);
$_SESSION['carrito'] = $arreglo;
}
}
}else{
// Creamos la variable de sesión
if(isset($_GET['idropa'])){
$idropa = $_GET['idropa'];
$prenda = '';
$precio = '';
$imagen = '';
$sql_mujer = "SELECT * FROM detalles_ropa inner join
ropa on detalles_ropa.idropa = ropa.id_ropa
where detalles_ropa.idropa = '{$idropa}'";
$resultado = mysqli_query($conexion, $sql_mujer);
$fila = mysqli_fetch_array($resultado);
$prenda = $fila['descripcion'];
$precio = $fila['precio'];
$imagen = $fila['imagen'];
$arreglo[] = array(
'Id' => $idropa,
'Prenda' => $prenda,
'Precio' => $precio,
'Imagen' => $imagen,
'Cantidad' => 1
);
$_SESSION['carrito'] = $arreglo;
}
}
Lo que hace:
Si no hay creada una variable de sesión, la crea con un producto. Esto lo hace bien, pero si quiero añadir otro producto distinto, no lo agrega, sino que le suma 1 al primero que se creó con la sesión.
Por la url llega bien el id. Gracias.
Valora esta pregunta


0