RafiWskY 2 Denunciar post Postado Novembro 5, 2014 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
ExtremsX 58 Denunciar post Postado Novembro 5, 2014 Faça assim: $ids = implode(',',array_values($areas)); mysql_query("DELETE FROM tabela WHERE campo IN ({$ids})"); Compartilhar este post Link para o post Compartilhar em outros sites
Electronic 124 Denunciar post Postado Novembro 5, 2014 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
RafiWskY 2 Denunciar post Postado Novembro 5, 2014 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