Insertar una Variable con un Array a MySQL
Publicado por Cristhian12 (1 intervención) el 30/06/2022 20:09:53
Buenas tardes, Quiero agregar una Variable que contiene un array, los datos del array son obtenido mediante una serie de inputs creado mediante ajax y un for, al momento de ingresar la variable a mysql solo me captura el ultimo dato ingresado, quisiera saber cual es el error o quizás falta agregar algún tipo de parametro.
prueba.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
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
if(isset($_POST['add_medidor'])){
$req_fields = array('nguia','fase','fecharegistro','serie');
if(empty($errors)){
$nguia = $db->escape($_POST['nguia']);
$fase = $db->escape($_POST['fase']);
$fechareg = $db->escape($_POST['fecharegistro']);
$resultado = $_POST['serie'];
foreach ($resultado as $valor){
echo $valor;
$serie=$valor;
$sql = "INSERT INTO medidores (";
$sql .= " nguia,fase,fecharegistro,serie";
$sql .= ") VALUES (";
$sql .= "'{$nguia}','{$fase}','{$fechareg}','{$serie}'";
$sql .= ")";}
}
}
<form method="post" action="add_medidor.php">
<table class="table table-bordered">
<thead>
<tr>
<th>N° de Guia</th>
<th>Fase</th>
<th>Fecha de Registro</th>
</tr>
<tr>
<td><input type="text" autocomplete="off" class="form-control" name="nguia" placeholder="N° de Guia"></td>
<td><select class="form-control" name="fase">
<option value="Monofasico">Monofásico</option>
<option value="Trifasico">Trifásico</option>
</select></td>
<td><input type="text" autocomplete="off" class="datepicker form-control" name="fecharegistro" placeholder="Fecha de Registro"></td>
</tr>
</thead>
<tbody id="product_info"> </tbody>
</table>
<div class='link' onClick="realizaProceso($('#cantidad').val());return false;">
<strong>
<span>Ingrese la Cantidad de Medidores a Ingresar</span>
</strong>
<br>
<input type="text" placeholder="Cantidad de Medidores" autocomplete="off" name="cantidad" id="cantidad" class="form-control" style="width : 300px; heigth : 300px"/></div></th>
<br>
<script type='text/javascript'>
function realizaProceso(valor1){
var parametros = {
"valor1" : valor1
};
$.ajax({
data: parametros,
url: 'proceso.php',
type: 'post',
beforeSend: function () {
$("#resultado").html("Procesando, espere por favor...");
},
success: function (response) {
$("#resultado").html(response);
}
});
} </script>
<div class='link' id="resultado"> Ingrese Medidores: </div>
<br>
<button onClick="return confirm('Estas seguro de Agregar?');" type="submit"
name="add_medidor"
class="btn btn-danger">Agregar Medidores</button>
</form>
proceso.php
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if(isset($_POST["valor1"]))
{
$resultado = $_POST['valor1'];
for($i=1;$i<=$resultado;$i++){
?>
<tr>
<td><strong>Serie <?php echo $i; ?> </strong></td>
<td><input placeholder="Serie" autocomplete="off" name="serie[]" id="serie" type="text"
size="30" maxlength="30" class="form-control"></td>
</tr>
<?php } }?>
Todo parte de prueba.php, mediante el Ajax que es proceso.php se crean los inputs en el mismo prueba.php y activar el boton del form agrega solo el ultimo de los digitos digitados en los inputs creados.
ejemplo: si en cantidad de inputs se digita 3, se crean 3 inputs en los cuales se digitan los valores, 32, 44 y 55 y al momento de activar el boton solo digita en la base de datos una fila con el valor 55
Valora esta pregunta


0