Exibir dados de um select multiple com PHP

Boa noite povo.

Estou desenvolvendo um projeto e como parte dele, criei uma página que o usuário irá cadastrar um respectivo incidente no banco de dados.

Em uma das partes, o usuário tem a escolha de escolher mais de uma opção, para isso utilizei um Array em PHP com Implode e no lado do HTML um Select Multiple. Até ae tudo bem, o usuário escolhe e aparece no Banco as opções tudo OK. O Problema é quero dar a opção do usuário poder alterar os valores e mesmo eu jogando a variavel em PHP, o select multiple retorna sem as opções selecionadas na página de alterar.

Alguém poderia me falar como faço para os dados escolhidos aparecer em um select multiple?

Grato desde já

Tentei várias formas mas não consegui, aproveitando estou mudando um pouco o foco do sistema, agora tipo o usuário irá ver em um campo disabled os Estados selecionados, porém caso queira alterar aumentando um, ele escolhe em baixo. O problema, e que não está concatenando no banco, está sobre escrevendo os dados no banco …tipo eu seleciono SP e RJ e depois quero adicionar MG porém ao fazer isso, ele exclui o SP e o RJ e joga só o MG no banco. JÁ tentei com foreach, array, implode porém ele não funciona nada. Alguém sabe como pode ser feito isso… no caso quero apenas um update em um dos itens do banco sem que sobrescreva o que está escrito. …grato desde já…

Caso necessário, eu posto o código aqui

Oi @ferhelloween, belezinha? São dois problemas diferentes? Deixa a gente resolver o mais antigo primeiro? Faz o seguinte, posta um código parecido com o que você tem ai, não precisa e nem deve ser o mesmo. Como você tá montando esse select multiple?

@wandersonmaceds Segue abaixo o código

No caso é dividido em 3 partes, o cadastro está OK, tem um arquivo de Gerencia e um para alteração.

Segue abaixo o arquivo para alteração

 <?
	#Definir char-set 
	setlocale(LC_ALL,"pt_BR"); 
	header('Content-type: text/html; charset=windows-1252'); 
	
	
	$dataAt = date('d/m/Y');	
	$horaAt = date('H:i:s');
	
	set_time_limit(120); //Define tempo limite de execução
	ERROR_REPORTING (E_ERROR);  //Somente exibe erros fatais
	include "conexao.php"; //Carrega funções de conexão com BD

	$sqlq = new COM("ADODB.Connection"); //instancia a classe de conexao
	$sqlq->Open("PROVIDER=SQLOLEDB;Data Source=.;Initial Catalog=Ocorrencias;User ID=usr_des_001; Password=usr_des_001"); //estabelece conexão com MSSQL 	

	$busca = $_REQUEST['id']; 
	
	 $sql = "SELECT *   
					FROM Ocorrencias..tb_pnl_massiva 
					WHERE [id] = $busca";
			
	//echo $sql; 		
	//Executa a conexão 
	$rsql_ver = $sqlq->execute($sql);		

	if($tbl = $rsql_ver) 
						{ 
						  $codigo = $tbl["id"]; 
						  $codigo = $tbl["operadora"]; 
						  $codigo = $tbl["estado"]; 
						  $codigo = $tbl["gitec"]; 
						  $codigo = $tbl["imp_total"];
						  $codigo = $tbl["ag_indisp"];
						  $codigo = $tbl["ag_cont"]; 
						  $codigo = $tbl["cham_operadora"];
						  $codigo = $tbl["data_hora_massiva"]; 
						  $codigo = $tbl["prev_norm"]; 
						  $codigo = $tbl["obs"]; 
						  $codigo = $tbl["data_hora_norm"]; 
						  $codigo = $tbl["sol_prob"]; 
						}
					#Exibe mensagem de erro se registro não existir 
					else 
						{ echo "Registro não localizado"; }
			
									
										while (!$rsql_ver->EOF){ //Tratamento dos registros retornados na Query	
												
												$id = $rsql_ver->Fields['id']->Value;
												$operadora = $rsql_ver->Fields['operadora']->Value;
												$estado = $rsql_ver->Fields['estado']->Value;												
												$gitec = $rsql_ver->Fields['gitec']->Value;
												$imp_total = $rsql_ver->Fields['imp_total']->Value;
												$ag_indisp = $rsql_ver->Fields['ag_indisp']->Value;
												$ag_cont = $rsql_ver->Fields['ag_cont']->Value;
												$cham_operadora = $rsql_ver->Fields['cham_operadora']->Value;
												$data_hora_massiva = $rsql_ver->Fields['data_hora_massiva']->Value;												
												$prev_norm = $rsql_ver->Fields['prev_norm']->Value;												
												$obs = $rsql_ver->Fields['obs']->Value;												
												$data_hora_norm = $rsql_ver->Fields['data_hora_norm']->Value;												
												$sol_prob = $rsql_ver->Fields['sol_prob']->Value;	
												
									
											$rsql_ver->MoveNext();			
										} 
  										//	echo $id;		
	
?>

<html> 
	<head> <!-- Início da Tag Head --> 

			<!-- Meta de Configuração de Página -->  
			<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
			<meta name="authors" content="CGR - Governança">
			
			<title>Sistema CGR de cadastro de massivas</title>
    
			<!-- Arquivos CSS utilizados --> 
			<link rel="stylesheet" type="text/css" href="Paginas.css"/>
	
			<!--Arquivos Java Script utilizados --> 
			<script type="text/javascript" src="jquery3.1.1.js"></script>
			<script> 
			//Irá perguntar se deseja ou não encerrar a ocorrência.
			function pergunta(){
				if (confirm('Tem certeza que deseja encerrar está ocorrência?')){
				document.seuformulario.submit()
			}
			} 
			</script> 
		
		</head> <!-- Fim -->
		
		<body> 
			<h2>Alterar/Encerrar Massiva</h2> <br>
			<form name="FormMassiva" method="POST" action="gerencia-massivas.php?acao=Adicionar"> 
				<fieldset>
					<input type="hidden" name="formMassivaCodigo" value = "<?= $id;?>"> 
					<legend>Massiva:</legend> 
					<ul>	
						<li>
							<label>Operadora:</label>
								<select name="formMassivaOperadora" class="extra"/>
										<option value="<? echo $operadora?>"><? echo $operadora; ?></option> 
										<option>Selecione...</option>
										<option value="ALGAR MULTIMIDIA S.A.">ALGAR MULTIMIDIA S.A.</option>
										<option value="ALPHA">ALPHA</option>
										<option value="AMERICANET">AMERICANET</option>
										<option value="BRASIL TELECOM">BRASIL TELECOM</option>
										<option value="BT">BT</option>
										<option value="CEMIG TELECOMUNICAÇÕES S.A">CEMIG TELECOMUNICAÇÕES S.A</option>
										<option value="EMBRATEL">EMBRATEL</option>
										<option value="FREE WAY TECNOLOGIA LTDA">FREE WAY TECNOLOGIA LTDA</option>
										<option value="INTELIG">INTELIG</option>
										<option value="LEVEL 3">LEVEL 3</option>
										<option value="MOB - SERVIÇOS DE TELECOMUNICAÇÕES LTDA">MOB - SERVIÇOS DE TELECOMUNICAÇÕES LTDA</option>
										<option value="OI">OI</option>
										<option value="OI MÓVEL S.A.">OI MÓVEL S.A.</option>
										<option value="PRONTONET">PRONTONET</option>
										<option value="TELEFONICA">TELEFONICA</option>
										<option value="TELEFÔNICA BRASIL S/A.">TELEFÔNICA BRASIL S/A.</option>
										<option value="TELEMAR NORTE LESTE SA">TELEMAR NORTE LESTE SA</option>
										<option value="TNL PCS">TNL PCS</option>
										<option value="WIRELESS COMM SERVICES LTDS - ME">WIRELESS COMM SERVICES LTDS - ME</option>
								</select>		
						</li>
						
						<li>
						<label>GITEC:</label>
						<input disabled type="text" name="formMassivaGitec" class="largo" value="<?PHP echo $gitec;?>"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
								<select multiple="multiple" name="formMassivaGitec[]"> 
									<option value="GITEC-PO">GITEC-PO</option>
									<option value="GITEC-FL">GITEC-FL</option>
									<option value="GITEC-CT">GITEC-CT</option>
									<option value="GITEC-SP">GITEC-SP</option>
									<option value="GITEC-CP">GITEC-CP</option>
									<option value="GITEC-BU">GITEC-BU</option>
									<option value="GITEC-RJ">GITEC-RJ</option>
									<option value="GITEC-BH">GITEC-BH</option>
									<option value="GITEC-CG">GITEC-CG</option>
									<option value="GITEC-GO">GITEC-GO</option>
									<option value="GITEC-BR">GITEC-BR</option>
									<option value="GITEC-BR">GITEC-BR</option>
									<option value="GITEC-SA">GITEC-SA</option>
									<option value="GITEC-RE">GITEC-RE</option>
									<option value="GITEC-FO">GITEC-FO</option>
									<option value="GITEC-BE">GITEC-BE</option>
									<option value="GITEC-MN">GITEC-MN</option>
									<option value="CEPTI-SP">CEPTI-SP</option>
									<option value="CEPTI-RJ">CEPTI-RJ</option>
									<option value="CEPTI-BR">CEPTI-BR</option>
									<option value="MATRIZ-BR">MATRIZ-BR</option>
									<option value="FILIAL-BR">FILIAL-BR</option>
								</select>	
						</li>
						<li>		
							<label>Estado:</label>
							<input disabled type="text" name="formMassivaGitec" class="largo" value="<?PHP echo $estado;?>"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
							&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
								<select multiple="multiple" name="formMassivaEstado[]"> 
									<option value="Rio Grande do Sul">Rio Grande do Sul</option>
									<option value="Santa Catarina">Santa Catarina</option>
									<option value="Paraná">Paraná</option>
									<option value="São Paulo">São Paulo</option>
									<option value="Rio de Janeiro">Rio de Janeiro</option>
									<option value="Espírito Santo">Espírito Santo</option>
									<option value="Minas Gerais">Minas Gerais</option>
									<option value="Mato Grosso do Sul">Mato Grosso do Sul</option>
									<option value="Mato Grosso">Mato Grosso</option>
									<option value="Goiás">Goiás</option>
									<option value="Distrito Federal">Distrito Federal</option>
									<option value="Bahia">Bahia</option>
									<option value="Alagoas">Alagoas</option>
									<option value="Sergipe">Sergipe</option>
									<option value="Pernambuco">Pernambuco</option>
									<option value="Paraíba">Paraíba</option>
									<option value="Rio Grande do Norte">Rio Grande do Norte</option>
									<option value="Ceará">Ceará</option>
									<option value="Piauí">Piauí­</option>
									<option value="Maranhão">Maranhão</option>
									<option value="Tocantins">Tocantins</option>
									<option value="Pará">Pará</option>
									<option value="Amapá">Amapá</option>
									<option value="Rondônia">Rondônia</option>
									<option value="Amazonas">Amazonas</option>
									<option value="Roraima">Roraima</option>
									<option value="Acre">Acre</option>
								</select>	
								
								
						</li>
						<li>
							*Favor utilizar a tecla <i><b>CTRL</b></i> para selecionar e alterar novamente Estados e as GITEC.
						</li>
							

							
				
						<li>
							<label>Impacto Total:</label><input type="text" name="formMassivaImpacto" class="quasemedio" value="<?=$imp_total; ?>" /> 		
							<label>Agências Indisponíveis:</label><input type="text" name="formMassivaAgIndis" class="pequeno" value="<?=$ag_indisp; ?>"/> 
							<label>Agências na Contigência:</label><input type="text" name="formMassivaAgCont" class="pequeno" value="<?=$ag_cont; ?>"/>
						</li>		
				
						<li>
							<label>Chamado(s) Operadora:</label><input type="text" name="formMassivaChamado" class="extra" value="<?=$cham_operadora; ?>"/>
						</li>		
				
						<li>
							<label>Data/Hora da Massiva:</label><input type="text" name="formMassivaDataMassiva" class="medio" value = "<?=$data_hora_massiva;?>"/>
							<label>Previsão de Normalização:</label><input type="text" name="formMassivaPrevisao" class="largo" value="<?=$prev_norm;?>"/>
						</li>		
				
						<li>
							<label>Observação:</label><textarea  name="formMassivaObs"rows="03" cols="40" ><?=$obs;?></textarea>
						</li>	
							<input type="hidden" name="formMassivaUsuario" value="<?=$usr_cad = strtolower($_SERVER["REMOTE_USER"]);?>">
					</ul>	
				</fieldset>	
				<fieldset> 
					<ul> 
						<li> 
							<label>Data/Hora de Normalização:</label><input type="text" name="formMassivaNormaliza" class="medio" value="<?echo $dataAt."&nbsp;".$horaAt?>"/> 
						</li> 
						
						<li> 
							<label>Solução do problema:</label>&nbsp;&nbsp;<textarea  name="formMassivaSolucao" rows="04" cols="50"><?=$sol_prob;?></textarea>
						</li>
					</ul>
					<br>
					<input type="submit" name="acao"value="Alterar" name="Alterar" class="botao"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
					<input type="submit" name="acao"value="Encerrar" onClick="pergunta()"  name="Encerrar" class="botao"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
				
				
				</fieldset> 
			</form> 
					<p id="fechaJalMas"><a href="javascript:window.close();" >Voltar</a></p> 
			
		</body> 
</html> 

E agora o arquivo para Gerenciar a alteração. No caso o que interessa é a parte de alterar/encerrar a Massiva.

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
<meta name="authors" content="CGR - Governanaça">
<link rel="stylesheet" type="text/css" href="paginas.css"/>
<? 
	#Definir char-set 
	#Definir char-set 
	setlocale(LC_ALL,"pt_BR"); 
	header('Content-type: text/html; charset=windows-1252'); 

		set_time_limit(120); //Define tempo limite de execução
		ERROR_REPORTING (E_ERROR);  //Somente exibe erros fatais
		include "conexao.php"; //Carrega funções de conexão com BD

		$sqlq = new COM("ADODB.Connection"); //instancia a classe de conexao
		$sqlq->Open("PROVIDER=SQLOLEDB;Data Source=.;Initial Catalog=Ocorrencias;User ID=usr_des_001; Password=usr_des_001"); //estabelece conexão com o Banco 


		$datan = $_REQUEST["formMassivaNormaliza"];
		$datai = $_REQUEST["formMassivaDataMassiva"];
		//$selGitec = explode(",",$_REQUEST["formMassivaGitec"]); 	
		/*$selGitec = $_REQUEST["formMassivaGitec"]; 
			for($i=0;$i<count($selGitec);$i++) 
					{
						echo "<br>" . $i . ": " . $selGitec[$i];	
					} 
		*/
		$datai = substr($datai, 6,4)."-".substr($datai, 3,2)."-".substr($datai, 0,2)." ".substr($datai, 11,8);
		$datan = substr($datan, 6,4)."-".substr($datan, 3,2)."-".substr($datan, 0,2)." ".substr($datan, 11,8);
		
		
		$dataAtual = date('Y/m/d H:i:s');

		if($_POST["acao"] == "Adicionar") 
		{ 	
			//$selGitec = implode(',',$_REQUEST['formMassivaGitec']);
			/*$selGitec = ""; 
			foreach($_REQUEST['formMassivaGitec'] as $value); 
				{ 
					$selGitec .= $value.","; 
				} 
			$selGitec = substr($selGitec,0,-1); */ 
			$selGitec = implode(', ', $_POST['formMassivaGitec']); 
			//echo $selGitec;
					
			//echo "<BR>"; 
			//echo "<BR>"; 
			
			$selEstado = implode(', ', $_POST['formMassivaEstado']); 
			//echo $selEstado;
			
			//echo "<BR>"; 
			//echo "<BR>"; 
			
			
			#Efetua a verificação para ver se a Massiva foi Cadastrada ou Encerrada 
			$sql = "INSERT INTO Ocorrencias..tb_pnl_massiva(operadora,gitec,estado,imp_total,ag_indisp,ag_cont, cham_operadora, data_hora_massiva, prev_norm, obs,usuario_cad)";
			#Insere os valores 
			$sql .= "VALUES ("; 
		
			$sql .= "'".$_POST["formMassivaOperadora"]."',";
			$sql .= "'".$selGitec."',";
			$sql .= "'".$selEstado."',";
			$sql .= "'".$_POST["formMassivaImpacto"]."',";
			$sql .= "'".$_POST["formMassivaAgIndis"]."',";
			$sql .= "'".$_POST["formMassivaAgCont"]."',";
			$sql .= "'".$_POST["formMassivaChamado"]."',";
			$sql .= "'".$datai."',";
			$sql .= "'".$_POST["formMassivaPrevisao"]."',";
			$sql .= "'".$_POST["formMassivaObs"]."',";
			$sql .= "'".$_POST["formMassivaUsuario"]."'";
			$sql .= ")";
		
			//echo $sql;
			
			#executa a expressão SQL no Server, e armazena o resultado. 
			$rsql_ver = $sqlq->execute($sql); 
		} 
		else if($_POST["acao"]=="Encerrar"){ 
			
			$id = $_REQUEST["formMassivaCodigo"]; 
			
			//Cria a variavel para as Gitec já cadastradas no registro 
			$cadGitec = "SELECT [gitec] FROM Ocorrencias..tb_pnl_massiva WHERE [ID] = '$id'"; 
			//Executa a query cadGitec 
			$sqlGitec = $sqlq->execute($cadGitec); 
			$encGitec = $sqlGitec->Fields['gitec']->Value;  
			
			//echo $encGitec; 
			$selGitec = implode(' ', $_REQUEST['formMassivaGitec']); 
			$resultGitec = $encGitec.' '.$selGitec; 
			
			//Cria a variavel para os Estados já cadastrados no registro 
			$cadEstado = "SELECT [estado] FROM Ocorrencias..tb_pnl_massiva WHERE [ID] = '$id'"; 
			//Executa a query cadEstado 
			$sqlGitec = $sqlq->execute($cadEstado); 
			$encEstado = $sqlGitec->Fields['estado']->Value;  	
			
			$selEstado = implode(' ', $_REQUEST['formMassivaEstado']); 
			$resultEstado = $encEstado.' '.$selEstado;

			#implantação de itens de data 	
			$datai = $_REQUEST["formMassivaDataMassiva"];	
			$datan = $_REQUEST["formMassivaNormaliza"];	
			$datai = substr($datai, 6,4)."-".substr($datai, 3,2)."-".substr($datai, 0,2)." ".substr($datai, 11,8);
			$datan = substr($datan, 6,4)."-".substr($datan, 3,2)."-".substr($datan, 0,2)." ".substr($datan, 11,8);
					
			#controle de usuário 
		
						
					
			$sql = "UPDATE tb_pnl_massiva SET ";
			//$sql .= "[data_norm] ='".$datan."',";
			$sql .= "[operadora] ='".$_REQUEST["formMassivaOperadora"]."',";
			$sql .= "[gitec] ='".$resultGitec."',";
			$sql .= "[estado] ='".$resultEstado."',";
			$sql .= "[imp_total] ='".$_REQUEST["formMassivaImpacto"]."',";
			$sql .= "[ag_indisp] ='".$_REQUEST["formMassivaAgIndis"]."',";
			$sql .= "[ag_cont] ='".$_REQUEST["formMassivaAgCont"]."',";
			$sql .= "[cham_operadora] ='".$_REQUEST["formMassivaChamado"]."',";
			$sql .= "[data_hora_massiva] ='".$datai."',";
			$sql .= "[obs] ='".$_REQUEST["formMassivaObs"]."',";
			$sql .= "[usuario_enc] ='".$_REQUEST["formMassivaUsuario"]."',"; 
			$sql .= "[data_hora_norm] ='".$datan."',";
			$sql .= "[sol_prob] ='".$_REQUEST["formMassivaSolucao"]."'";
			$sql .= "WHERE ID = '".$id."'";
		 
			//echo $sql;
			echo "<BR><BR>";
		 
			$rsql_ver = $sqlq->execute($sql); 
						
		} else if($_POST["acao"]=="Alterar") { 
		
			$id = $_REQUEST["formMassivaCodigo"]; 
			
			//Cria a variavel para as Gitec já cadastradas no registro 
			$cadGitec = "SELECT [gitec] FROM Ocorrencias..tb_pnl_massiva WHERE [ID] = '$id'"; 
			//Executa a query cadGitec 
			$sqlGitec = $sqlq->execute($cadGitec); 
			$encGitec = $sqlGitec->Fields['gitec']->Value;  
			
			//echo $encGitec; 
			$selGitec = implode(' ', $_REQUEST['formMassivaGitec']); 
			$resultGitec = $encGitec.' '.$selGitec; 
			
			//Cria a variavel para os Estados já cadastrados no registro 
			$cadEstado = "SELECT [estado] FROM Ocorrencias..tb_pnl_massiva WHERE [ID] = '$id'"; 
			//Executa a query cadEstado 
			$sqlGitec = $sqlq->execute($cadEstado); 
			$encEstado = $sqlGitec->Fields['estado']->Value;  	
			
			$selEstado = implode(' ', $_REQUEST['formMassivaEstado']); 
			$resultEstado = $encEstado.' '.$selEstado; 
					
			
			#implantação de itens de data 
			$datai = $_REQUEST["formMassivaDataMassiva"];	
			//$datan = $_REQUEST["formMassivaNormaliza"];	
			$datai = substr($datai, 6,4)."-".substr($datai, 3,2)."-".substr($datai, 0,2)." ".substr($datai, 11,8);
			$datan = substr($datan, 6,4)."-".substr($datan, 3,2)."-".substr($datan, 0,2)." ".substr($datan, 11,8); 
			
				
			//Cria a variavel do usuário que irá alterar a solicitação. 
			$sqlAltera = "SELECT [usuario_alt] FROM Ocorrencias..tb_pnl_massiva WHERE [ID] = '$id'";
			//Executa a query e atribui o valor
			$sqlAltUser = $sqlq->execute($sqlAltera); 
			$altUser = $sqlAltUser->Fields['usuario_alt']->Value;

			$userAlt = $_REQUEST["formMassivaUsuario"]; 
			$resUserAlt = $altUser.', '.$userAlt; 	
								
			#controle de usuário para alteração em desenvolvimento. 
		
							
			$sql = "UPDATE tb_pnl_massiva SET ";
			//$sql .= "[data_norm] ='".$datan."',";
			$sql .= "[operadora] ='".$_REQUEST["formMassivaOperadora"]."',";
			$sql .= "[gitec] ='".$resultGitec."',"; //Concatena as GITEC cadastradas com as novas. 
			$sql .= "[estado] ='".$resultEstado."',"; //Concatena os Estados alterados com os novos. 
			$sql .= "[imp_total] ='".$_REQUEST["formMassivaImpacto"]."',";
			$sql .= "[ag_indisp] ='".$_REQUEST["formMassivaAgIndis"]."',";
			$sql .= "[ag_cont] ='".$_REQUEST["formMassivaAgCont"]."',";
			$sql .= "[cham_operadora] ='".$_REQUEST["formMassivaChamado"]."',";
			$sql .= "[data_hora_massiva] ='".$datai."',";
			$sql .= "[obs] ='".$_REQUEST["formMassivaObs"]."',";
			$sql .= "[usuario_alt] ='".$resUserAlt."'";
			//$sql .= "[data_hora_norm] ='".$datan."',";
			//$sql .= "[sol_prob] ='".$_REQUEST["formMassivaSolucao"]."',";
			$sql .= " WHERE ID = '".$id."'";
		 
			//echo $sql;
			echo "<BR><BR>";
		 
			$rsql_ver = $sqlq->execute($sql); 
			} 


?>
	<BR>
	<BR><p>Massiva cadastrada/alterada com sucesso!!!</p><br><br>
	<BR><A href="FormMassiva.php">Clique aqui para inserir um novo registro.</a> 
	<BR><A href="Painel.php">Clique aqui para visualizar o Painel de incidentes.</a> 
	<BR><BR><a href="javascript:window.close();" >Clique aqui para fechar a janela</a>

No caso, a segunda duvida meio que já solucionei. O problema agora é a primeira, ae consequentemente elimino esse segundo modo que eu fiz.

Agradeço desde já.

Oi jovem, desculpa a demora. Além de bem ocupado, levei um bom tempo pra entender parte do seu código. Experimente quebrar isso depois se possível, há muita mistura de HTML, PHP, SQL e outras coisas.

O problema que eu acho que entendi é que, quando usa select muiltple, mesmo que permitindo seleção, no POST será enviados todos os valores, porém apenas o último será recebido no $_POST. Para resolver esse tipo de questão, você precisa tratar o select multiple do HTML como um ARRAY da seguinte forma: É um exemplo!

<select name="formMassivaOperadora[]" class="extra"/>

Isso deve acontecer sempre que tiver um select multiple. Quando o post for enviado o PHP ira armazenar as várias seleções em um Array. Pegou a ideia? Ai você pode usar um implode ou foreach, o que achar melhor.

Com relação ao update, não tem outro jeito, se quiser manter os UF’s selecionados anteriormente, você precisa resgatá-los antes e compará-los com o combo, definindo seus valores novamente, assim quando fizer o submit, a lista manterá seu estado…