Error al insertar a bd con ciclo FOR
Publicado por Henry (11 intervenciones) el 06/04/2021 03:54:15
Buenas noches, espero no molestarle, tengo un codigo en PHP que estoy codificando para realizar insercion a una bd por medio de un ciclo FOR.
En primera instancia tengo un "carrito" inicializado con un $_SESSION[], acto seguido extraigo los datos, y mediante un ciclo FOR quiero realizar la inserción de los elementos por tamaño en el arreglo.
Ejemplo:
array (size=2)
0 => string '2 || Camara Phillips || 3 || 2100 || henry'
1 => string '3 || DRV || 2 || 200 || henry'
Ahora bien, solo realiza la inseción del primer registro, mas no la segunda. He estado analizando la situación e investigado, pero no encuentro información que me ayude. Todo el codigo me anda bien en este punto.
Codigo HTML
Codigo Javascript
Codigo PHP
¿Hay algo que estoy implementando mal?
En primera instancia tengo un "carrito" inicializado con un $_SESSION[], acto seguido extraigo los datos, y mediante un ciclo FOR quiero realizar la inserción de los elementos por tamaño en el arreglo.
Ejemplo:
array (size=2)
0 => string '2 || Camara Phillips || 3 || 2100 || henry'
1 => string '3 || DRV || 2 || 200 || henry'
Ahora bien, solo realiza la inseción del primer registro, mas no la segunda. He estado analizando la situación e investigado, pero no encuentro información que me ayude. Todo el codigo me anda bien en este punto.
Codigo HTML
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
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
// Conexion para el producto
include "../conexion.php";
//rescate del usuario
session_start();
$id_venta=0;
$sql="SELECT * FROM venta GROUP BY id_venta DESC";
$result=mysqli_query($link, $sql);
$count=mysqli_fetch_array($result);
$id_venta=$count[0]+1;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width-device-width, initial-scale=1">
<link rel="stylesheet" href="../Jquery/jquery.mobile-1.4.5.css">
<script src="../Jquery/jquery.min.js"></script>
<script src="../Jquery/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="../js/compra.js"></script>
<title>Información</title>
</head>
<body>
<div data-role="page" id="market" >
<div data-role="header" data-theme="b">
<!-- Link a index.html -->
<a href="../productos.php" data-role="button" data-icon="back" data-theme="b" >Back</a>
<h1>Videovigilancia Garcia</h1>
<!-- Link a login.html-->
</div>
<div data-role="main" class="ui-content" >
<h2 align="center">Carrito de compras</h2>
<table>
<tr>
<td>Clave</td>
<td>Nombre</td>
<td>Cantidad</td>
<td>Precio</td>
<td>Usuario</td>
<td>Quitar</td>
</tr>
<?php
$total=0;
if (isset($_SESSION['tablaComprasTemp'])):$i=0;
foreach (@$_SESSION['tablaComprasTemp'] as $key) {
$d=explode("||", @$key);
?>
<tr>
<td><?php echo $d[0]; ?></td>
<td><?php echo $d[1]; ?></td>
<td><?php echo $d[2]; ?></td>
<td><?php echo $d[3]; ?></td>
<td><?php echo $d[4]; ?></td>
<td></td>
</tr>
<?php
$total=$total+$d[3];
$i++;
}
endif;
?>
<tr>
<td></td>
<td></td>
<td></td>
<td>Total: <?php echo "$". $total; ?></td>
<td></td>
<td></td>
</tr>
</table>
<input type="text" name="idVenta" id="idVenta" value="<?php echo $id_venta ?>">
<a id="compra" name="compra" class="ui-btn ui-btn-corner-all ui-shadow" data-rel="external">Comprar</a>
<?php require_once "../footer.php"; ?>
</div>
<!-- <script type="text/javascript" src="../js/compra.js"></script> -->
</body>
</html>
Codigo Javascript
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
$(document).on("pagecreate", "#market", function(){
$("#compra").click(function(){
//Recupero cantidad
var id_venta =$('#idVenta').val();
alert(id_venta);
$.ajax({
url: '../procesos/sale.php',
type: 'POST',
data:{
id_venta: id_venta,
},
})
.done(function(){
console.log("success");
alert("Compra exitosa");
$.mobile.changePage("../productos.php");
})
.fail(function(){
console.log("error");
alert("No se pudo realizar la compra");
})
.always(function(){
console.log("complete");
})
});
});
Codigo PHP
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
<?php
require_once ('../conexion.php');
session_start();
//recibo id_folio a asignar
$id=$_POST['id_venta'];
//Adquiero usuario
$usuario=$_SESSION['username'];
//Consulto datos del usuario
$sql="SELECT * FROM usuarios WHERE username='$usuario'";
//Asigno id de usuario
$nombre=mysqli_query($link, $sql);
$id_usuario=mysqli_fetch_row($nombre)[0];
//Asigno fecha del sistema para inserción
date_default_timezone_set("America/Mexico_City");
$mifecha=date('Y-m-d H:i:s');
//recibo datos del arreglo tabla temporal venta
$datos=$_SESSION['tablaComprasTemp'];
var_dump($datos);
//Realizo inserción
$r=0;
$cantidad=count($datos);
// do {
// $d=explode("||", $datos[$i]);
// //insercion a tabla venta
// $insert="INSERT INTO venta SET id_venta='$id', cve_producto='$d[0]', nombreprod='$d[1]', cantidad='$d[2]', total='$d[3]', id_usuario='$id_usuario', nameusu='$d[4]', fecha='$mifecha'";
// $r=$r+$resultado=mysqli_query($link, $insert);
// $i++;
// } while ($i<$cantidad);
for ($i=0; $i<$cantidad; $i++) {
$d=explode("||", $datos[$i]);
var_dump($d);
//insercion a tabla venta
$insert="INSERT INTO venta SET id_venta='$id', cve_producto='$d[0]', nombreprod='$d[1]', cantidad='$d[2]', total='$d[3]', id_usuario='$id_usuario', nameusu='$d[4]', fecha='$mifecha'";
$r=$r+$resultado=mysqli_query($link, $insert);
}
return $r;
?>
¿Hay algo que estoy implementando mal?
Valora esta pregunta


0