prepare("SELECT id FROM usuarios WHERE email = :email AND id != :id"); $stmt->execute([':email' => $email, ':id' => $id]); if ($stmt->fetch()) { $_SESSION['error_message'] = "El correo electrónico ya está registrado por otro usuario."; header("Location: editar_colaborador.php?id=" . $id); exit(); } // Build the query $sql_parts = [ "nombre = :nombre", "email = :email", "rol = :rol" ]; $params = [ ':nombre' => $nombre, ':email' => $email, ':rol' => $rol, ':id' => $id ]; // If password is provided, add it to the query if (!empty($password)) { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $sql_parts[] = "password = :password"; $params[':password'] = $hashed_password; } $sql = "UPDATE usuarios SET " . implode(", ", $sql_parts) . " WHERE id = :id"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $_SESSION['success_message'] = "Colaborador actualizado exitosamente."; header("Location: colaboradores.php"); exit(); } catch (PDOException $e) { error_log("Error al editar colaborador: " . $e->getMessage()); $_SESSION['error_message'] = "Error al conectar con la base de datos. Por favor, inténtelo de nuevo."; header("Location: editar_colaborador.php?id=" . $id); exit(); } } else { header("Location: colaboradores.php"); exit(); } ?>