Edição de select multiple com php MySql

Olá galera, estou com uma seguinte duvida.
tenho um campo multiple select que ao cadastrar as informações multiplas envia com sucesso.
Porem meu problema é quando vou editar, ao buscar os dados na consulta aparecem certinho sem problema algum, só que ao clicar no select mostra o que já foi selecionado e repete para ser selecionado novamente.

segue o codigo

<?php
          //busca do relacionamento referente ao vidro com acabamento           
        while($rows_relacaoVidro = mysqli_fetch_assoc($resultado_relacaoVidro)){ 
                echo '<option selected value="'.$rows_relacaoVidro['idvidrosfabrica'].'">'.$rows_relacaoVidro['descricao_vidro'].'</option>';        
        }
        //termino do relacionamento busca
         
         while($rows_vidro = mysqli_fetch_assoc($resultado_vidrosAtivo)){ 
                echo '<option value="'.$rows_vidro['idvidrosfabrica'].'">'.$rows_vidro['descricao_vidro'].'</option>';   
            } ?>            
      </select>

Na verdade você mesmo está duplicando os options…

Se o primeiro laço pertence ao que o usuário marcou e salvou, pode fazê-lo assim…

$escolhidos = [];
while ($row = mysqli_fetch_assoc($resultado_relacaoVidro)) {
    $id = $row['idvidrosfabrica'];
    $escolhidos[$id] = $id;
}

Depois no laço “original” faça…

<select ...>
<?php while($vidro = mysqli_fetch_assoc($resultado_vidrosAtivo)): ?>
    <option <?=isset($escolhidos[$vidro['idvidrosfabrica']]) ? 'selected' : ''?> value="<?=$vidro['idvidrosfabrica']?>"><?=$vidro['descricao_vidro']?></option>
<?php endwhile; ?>
</select>

Aproveito para te mostrar outra forma de “misturar” php com html usando while/endwhile etc e o operador de saida <?=?> que está habilitado no php desde a versão 5.4, veja como facilita a leitura, evita usar echos para imprimir html na tela…

Muito obrigado pela ajuda Rodevops, deu certinho aqui, agradeço a ajuda.