I make a module in which is a data update but it is massive by means of an excel.CSV, I have the following fields in my "worker" table, some are foreign keys of other table:
id_ControlPrimaria
nombre
ap_paterno
ap_materno
NSS
CURP
RFC
fecha_nac
id_puesto FK
id_area FK
idctg_turno FK
idctg_empresa FK
id_nomina FK
What I'm trying to do is only update only the data in the idctg_turno
field according to the id_Control
and the other data remain intact. I'll attach my bulk update code and also the query with the one that updates, the problem that I have does not know if it is correct the way I am doing it since it does not update any data . Thanks.
It's the massive modification code:
<?php
//nos permite recepcionar una variable que si exista y que no sea null
if (isset($_POST["enviar"])) {
require_once("conexion_excel.php");
require_once("functions_actualizar_turno.php");
$archivo = $_FILES["archivo"]["name"];
$archivo_copiado = $_FILES["archivo"]["tmp_name"];
$archivo_guardado = "copia_" . $archivo;
//echo $archivo . "esta en la ruta temporal: " . $archivo_copiado;
if (copy($archivo_copiado, $archivo_guardado)) {
//echo "se copeo correctamente el archivo temporal a nuestra carpeta de trabajo <br/>";
} else {
//echo "hubo un error <br/>";
}
if (file_exists($archivo_guardado)) {
$fp = fopen($archivo_guardado, "r"); //abrir un archivo
$rows = 0;
while ($datos = fgetcsv($fp, 1000, ";")) {
$rows ++;
// echo $datos[0] . " " . $datos[1] . " " . $datos[2] . " " . $datos[3] . "<br/>";
if ($rows > 1) {
$resultado = actualizar_datos($datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5], $datos[6], $datos[7], $datos[8], $datos[9], $datos[10], $datos[11], $datos[12]);
if ($resultado) {
//echo "se inserto los datos correctamente<br/>";
} else {
//echo "no se inserto <br/>";
}
}
}
} else {
echo "No existe el archivo copiado <br/>";
}
}
?>
This is the query code to update the data:
<?php
function actualizar_datos($id_Control,$nombre,$ap_paterno,$ap_materno, $NSS, $CURP, $RFC, $fecha_nac, $id_puesto, $id_area, $idctg_turno, $idctg_empresa, $id_nomina) {
global $conexion;
$sentencia = "(UPDATE trabajador SET id_Control='$id_Control',nombre='$nombre', ap_paterno='$ap_paterno', ap_materno='$ap_materno', NSS='$NSS', CURP='$CURP', RFC='$RFC', fecha_nac='$fecha_nac', id_puesto='$id_puesto', id_area='$id_area', idctg_turno='$idctg_turno', idctg_empresa='$idctg_empresa', id_nomina='$id_nomina' WHERE id_Control=$id_Control)";
$ejecutar = mysqli_query($conexion, $sentencia);
return $ejecutar;
}
?>