AVISO: Si el mismo código se actualiza varias veces es porque se encuentra repetido en el archivo subido.

prepare("INSERT INTO users ( id, username, name, lastname, user_dni, email, password, is_active, user_type, gender, code_info, is_organization, organization_name, region, rol ) VALUES (?, ?,?,?,?,?,?,?,?,?,?,?,?,?, ?)"); // ON CONFLICT(email) DO UPDATE SET name = EXCLUDED.name, surname = EXCLUDED.surname if (isset($_FILES['dataCliente'])) { if ($xlsx = SimpleXLSX::parse($_FILES['dataCliente']['tmp_name'])) { $array_fields_name = array(); foreach ($xlsx->rows() as $k => $fields) { if ($k == 0) { $array_fields_name = $fields; continue; // skip first row } // param where | dni $param = (isset($fields[4]) ? $fields[4] : ''); $param = str_replace(["\r\n", "\n", "\r"], '', $param); $param = strtoupper($param); // echo '-'.$param .'-
'; $dim = $xlsx->dimension(); $cols = $dim[0]; $array_fields = array(); $total_xlsx = $dim[1] - 1; $pass = 1; // echo $fields[1]; // return; if (!empty($param)) { // saber si existe el inventario $r = UserData::getByDniPg($param); if ($r == 'null') { // saber si existe el infocentro // $info = InfoData::getById($fields[1]); for ($i = 0; $i < $cols - 1; $i++) { $data_field = $array_fields_name[$i]; $data_var = (isset($fields[$i]) ? $fields[$i] : ""); if ($data_field == "is_active" || $data_field == "is_organization") { if ($data_var == 'NULL') { $data_var = '0'; } } if ($data_field == "code_info") { // if ($info != 'null' && $info->cod == $param) { // $pass = 1; // } $data_var = str_replace(["\r\n", "\n", "\r"], '', $data_var); $data_var = strtoupper($data_var); } $array_fields[] = $data_var; // echo ($i+1)."--".$data_var."--
"; } $stmt_insert->bindParam(1, $array_fields[0]); $stmt_insert->bindParam(2, $array_fields[1]); $stmt_insert->bindParam(3, $array_fields[2]); $stmt_insert->bindParam(4, $array_fields[3]); $stmt_insert->bindParam(5, $array_fields[4]); $stmt_insert->bindParam(6, $array_fields[5]); $stmt_insert->bindParam(7, $array_fields[6]); $stmt_insert->bindParam(8, $array_fields[7]); $stmt_insert->bindParam(9, $array_fields[8]); $stmt_insert->bindParam(10, $array_fields[9]); $stmt_insert->bindParam(11, $array_fields[10]); $stmt_insert->bindParam(12, $array_fields[11]); $stmt_insert->bindParam(13, $array_fields[12]); $stmt_insert->bindParam(14, $array_fields[13]); $stmt_insert->bindParam(15, $array_fields[14]); if ($pass == 1) { $stmt_insert->execute(); echo "NUEVO REGISTRO:: " . $array_fields[1] . "
"; } else { echo "No existe un infocentro: " . $param . " o su campo (k_info) no es el mismo. Por favor verifica que el campo (k_info) sea igual al que tiene el infocentro.
"; } // echo $stmt_insert->queryString."
"; } else { for ($i = 0; $i < $cols - 1; $i++) { $array_fields[] = (isset($fields[$i]) ? $fields[$i] : ""); $val_field = (isset($fields[$i]) ? $fields[$i] : ""); $val_field = str_replace("'", "", $val_field); $data_field = $array_fields_name[$i]; if ($data_field != "") { if ($val_field != $r->$data_field) { // if ($data_field != "id" && $data_field != "k_info") { if ($data_field == "code_info") { // quitamos saltos de linea y espacios $val_field = str_replace(["\r\n", "\n", "\r"], '', $fields[$i]); $val_field = strtoupper($val_field); } $data_q = $r->$data_field; echo "Actualizado:$param > $data_field : ($data_q) -POR- ($val_field)
"; $r->$data_field = $val_field; // } } } } $result = $r->updatePgXLSX(); } } echo ""; } ExecutorPg::doit("SELECT setval(pg_get_serial_sequence('users', 'id'),COALESCE((SELECT MAX(id) FROM users), 1));"); } else { echo SimpleXLSX::parseError(); } } ?>