PHP - Error al insertar a bd con ciclo FOR

 
Vista:
Imágen de perfil de Henry
Val: 32
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder