Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafiWskY

Excluir valores diferentes dos que estão no array

Recommended Posts

Bom dia,

 

Preciso de uma ajuda para excluir de uma tabela valores que não estejam dentro de um array.

 

Exemplo, tenho um array $areas que tem cinco registros. Quero excluir de uma tabela todos os valores que não sejam esses cinco.

$areas = isset($_POST['emp_sup']) ? $_POST['emp_sup'] : NULL;
$count = count(array_values($areas));	
   for($i=0; $i < $count; $i++){
      //aqui deletar todos os registros diferente do que está passando em $areas[$i]
   }

Se eu usar o código acima a cada passagem no for vai deletar todos os registros que sejam diferentes de $areas[$i], inclusive os que estão dentro do array.

 

O que eu preciso é que se o registro for igual a algum valor do array, que seja mantido no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

$ids = implode(',',array_values($areas));
mysql_query("DELETE FROM tabela WHERE campo IN ({$ids})");

 

usando IN ele exclui os que estão no array?

se for entao deveria ser

mysql_query("DELETE FROM tabela WHERE campo NOT IN ({$ids})");

pois ele quer excluir de uma tabela valores que não estejam dentro de um array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

usando IN ele exclui os que estão no array?

se for entao deveria ser

mysql_query("DELETE FROM tabela WHERE campo NOT IN ({$ids})");

pois ele quer excluir de uma tabela valores que não estejam dentro de um array.

 

Exatamente, mesmo com o código dele eu já havia entendido que era só usar NOT IN.

 

Resolveu meu problema,

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.