[Resolvido] Insert evitando registros duplicados
Bom dia Pessoal,
Estou fazendo um sistema para importação de um csv de Clientes, só que me deparei com o seguinte problema , como este csv será atualizado é possivel que ele contenha um email que já esta inserido no bd, então gostaria de evitar iso da seguinte forma :
Pensei assim faço um select pra ver todos e-mails que tenho cadastrados ai guardo isso em algum lugar , então quando eu for fazer este insert eu comparo se já esta neste "lugar" se tiver eu continuo e vou para o proximo se não eu adiciono no bd e neste "lugar" para evitar que seja inserido repetidamente ou que eu tenha que fazer um novo select... Não sei se fui claro se não fui me avissem que tento explicar melhor , vlaew pessoal segue o codigo como esta agora:
$tabela = "teste"; //tabela do banco
$arquivo = 'cat.txt';// aquivo a ver importado txt ou
$arq = fopen($arquivo,'r');// le o arquivo txt
$k = 0;
while( $conteudo = fgets($arq) ){
if( $k > 0 and trim( $conteudo ) != '' ){
$rand = mt_rand() . "\n";
$linha = explode(';', $conteudo);// divide por coluna onde tiver ponto e virgula
//$sql = mysql_query("select nome from teste"); // o select que pensei em fazer mais ai travei rs
//while ($dados = mysql_fetch_array($sql)) {
//$nome = $dados['nome']
// if (
$sql = "INSERT INTO $tabela (id, empresa, email, status, grupo, rand) VALUES ('', '" . $linha[0] . "', '" . $linha[1] . "', '0', '', '$rand')";
$result = mysql_query($sql) or die(mysql_error());
}
$k++;
$t = $k-1;
}
echo "quantidade de linhas importadas = $t";
?>
ValeuuuDiscussão (7)
Carregando comentários...