
como gaurdar datos en la tabla dinamica php y mysql
Publicado por Ernesto (1 intervención) el 01/07/2023 03:39:50
como esta comunidad espero me pudieran ayudar con mi codigo
tengo este codigo pero tengo un problema que en la base de datos solo guarda uno
si agrega mas inputs pero en mi base de datos solo guarda uno.
y aparte descompuso mi demas codigo y hay partes que ya no funciona
<h4>5.1 Cronograma: Por etapas de investigación.</h4>
<table border="0px" width="94%">
<thead bgcolor="#AE0000">
<tr>
<td><font color="#FFFFFF">Número de etapa</td>
<td><font color="#FFFFFF">Duración en meses</td>
<td><font color="#FFFFFF">Actividades a realizar</td>
<td><font color="#FFFFFF">Productos esperados</td>
</tr>
</thead>
<tbody id="tabla-cronograma">
<tr>
<td><input type="text" class="redondeado" size="15" name="CroEtapa[]"></td>
<td><input type="text" class="redondeado" size="15" name="CroDuracion[]"></td>
<td><input type="text" class="redondeado" size="15" name="Croactividades[]"></td>
<td><input type="text" class="redondeado" size="15" name="CroProductos[]"></td>
</tr>
</tbody>
</table>
<hr>
<input class="btn-i" type="button" value="Agregar otro" onclick="agregarInput()">
<script>
function agregarInput() {
var tabla = document.getElementById("tabla-cronograma");
var fila = document.createElement("tr");
var celda1 = document.createElement("td");
var input1 = document.createElement("input");
input1.type = "text";
input1.className = "redondeado";
input1.size = "15";
input1.name = "CroEtapa[]";
celda1.appendChild(input1);
fila.appendChild(celda1);
var celda2 = document.createElement("td");
var input2 = document.createElement("input");
input2.type = "text";
input2.className = "redondeado";
input2.size = "15";
input2.name = "CroDuracion[]";
celda2.appendChild(input2);
fila.appendChild(celda2);
var celda3 = document.createElement("td");
var input3 = document.createElement("input");
input3.type = "text";
input3.className = "redondeado";
input3.size = "15";
input3.name = "Croactividades[]";
celda3.appendChild(input3);
fila.appendChild(celda3);
var celda4 = document.createElement("td");
var input4 = document.createElement("input");
input4.type = "text";
input4.className = "redondeado";
input4.size = "15";
input4.name = "CroProductos[]";
celda4.appendChild(input4);
fila.appendChild(celda4);
tabla.appendChild(fila);
}
</script>
esta es la base de datos
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "sicapi";
// Obtener datos del formulario
$etapas = $_POST['etapa'];
$duraciones = $_POST['duracion'];
$actividades = $_POST['actividad'];
$productos = $_POST['producto'];
// Crear conexión a la base de datos
$conn = new mysqli($servername, $username, $password, $dbname);
// Verificar la conexión
if ($conn->connect_error) {
die("Error en la conexión: " . $conn->connect_error);
}
// Insertar los datos en la tabla
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Obtener los datos del formulario
$etapas = $_POST['CroEtapa'];
$duraciones = $_POST['CroDuracion'];
$actividades = $_POST['Croactividades'];
$productos = $_POST['CroProductos'];
// Iterar sobre los datos ingresados y realizar la inserción en la base de datos
for ($i = 0; $i < count($etapas); $i++) {
$etapa = $etapas[$i];
$duracion = $duraciones[$i];
$actividad = $actividades[$i];
$producto = $productos[$i];
// Realizar la inserción en la base de datos
$sql = "INSERT INTO cronograma_investigacion (etapa, duracion, actividad, producto) VALUES ('$etapa', '$duracion', '$actividad', '$producto')";
if (mysqli_query($conn, $sql)) {
echo "Datos insertados correctamente.";
} else {
echo "Error al insertar los datos: " . mysqli_error($conn);
}
}
// Cerrar la conexión con la base de datos
mysqli_close($conn);
}
tengo este codigo pero tengo un problema que en la base de datos solo guarda uno
si agrega mas inputs pero en mi base de datos solo guarda uno.
y aparte descompuso mi demas codigo y hay partes que ya no funciona
<h4>5.1 Cronograma: Por etapas de investigación.</h4>
<table border="0px" width="94%">
<thead bgcolor="#AE0000">
<tr>
<td><font color="#FFFFFF">Número de etapa</td>
<td><font color="#FFFFFF">Duración en meses</td>
<td><font color="#FFFFFF">Actividades a realizar</td>
<td><font color="#FFFFFF">Productos esperados</td>
</tr>
</thead>
<tbody id="tabla-cronograma">
<tr>
<td><input type="text" class="redondeado" size="15" name="CroEtapa[]"></td>
<td><input type="text" class="redondeado" size="15" name="CroDuracion[]"></td>
<td><input type="text" class="redondeado" size="15" name="Croactividades[]"></td>
<td><input type="text" class="redondeado" size="15" name="CroProductos[]"></td>
</tr>
</tbody>
</table>
<hr>
<input class="btn-i" type="button" value="Agregar otro" onclick="agregarInput()">
<script>
function agregarInput() {
var tabla = document.getElementById("tabla-cronograma");
var fila = document.createElement("tr");
var celda1 = document.createElement("td");
var input1 = document.createElement("input");
input1.type = "text";
input1.className = "redondeado";
input1.size = "15";
input1.name = "CroEtapa[]";
celda1.appendChild(input1);
fila.appendChild(celda1);
var celda2 = document.createElement("td");
var input2 = document.createElement("input");
input2.type = "text";
input2.className = "redondeado";
input2.size = "15";
input2.name = "CroDuracion[]";
celda2.appendChild(input2);
fila.appendChild(celda2);
var celda3 = document.createElement("td");
var input3 = document.createElement("input");
input3.type = "text";
input3.className = "redondeado";
input3.size = "15";
input3.name = "Croactividades[]";
celda3.appendChild(input3);
fila.appendChild(celda3);
var celda4 = document.createElement("td");
var input4 = document.createElement("input");
input4.type = "text";
input4.className = "redondeado";
input4.size = "15";
input4.name = "CroProductos[]";
celda4.appendChild(input4);
fila.appendChild(celda4);
tabla.appendChild(fila);
}
</script>
esta es la base de datos
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "sicapi";
// Obtener datos del formulario
$etapas = $_POST['etapa'];
$duraciones = $_POST['duracion'];
$actividades = $_POST['actividad'];
$productos = $_POST['producto'];
// Crear conexión a la base de datos
$conn = new mysqli($servername, $username, $password, $dbname);
// Verificar la conexión
if ($conn->connect_error) {
die("Error en la conexión: " . $conn->connect_error);
}
// Insertar los datos en la tabla
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Obtener los datos del formulario
$etapas = $_POST['CroEtapa'];
$duraciones = $_POST['CroDuracion'];
$actividades = $_POST['Croactividades'];
$productos = $_POST['CroProductos'];
// Iterar sobre los datos ingresados y realizar la inserción en la base de datos
for ($i = 0; $i < count($etapas); $i++) {
$etapa = $etapas[$i];
$duracion = $duraciones[$i];
$actividad = $actividades[$i];
$producto = $productos[$i];
// Realizar la inserción en la base de datos
$sql = "INSERT INTO cronograma_investigacion (etapa, duracion, actividad, producto) VALUES ('$etapa', '$duracion', '$actividad', '$producto')";
if (mysqli_query($conn, $sql)) {
echo "Datos insertados correctamente.";
} else {
echo "Error al insertar los datos: " . mysqli_error($conn);
}
}
// Cerrar la conexión con la base de datos
mysqli_close($conn);
}
Valora esta pregunta


0