Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
matheus.del-re

UPDATE E INSERT VIA ARQUIVO .CSV

Recommended Posts

Boa Tarde Galera. 

Vou tentar explicar essa minha grande dúvida da maneira mais clara possível, vamos lá: 

Tenho um sistema que recebe um UPLOAD de um arquivo .CSV e insere corretamente no banco de dados todas as colunas e linhas necessárias, até que um cliente chegou a mim me questionando sobre as pastas que eram duplicadas toda vez que ele fazia um novo UPLOAD("e;Pastas duplicadas seriam digamos 2 ou mais vezes o mesmo CNPJ e CPF inseridos), então oque propus a ele foi: 

Sempre que houver um novo upload ele confere se o CPF/CNPJ já está inserido no banco de dados. 

1º -) Se o CPF/CNPJ não estiver inserido no banco de dados ele vai e criar o INSERT de registros normalmente. 

2º-) Se o CPF/CNPJ já estiver inserido, ele cria um UPDATE nos registros, e faz o UPDATE dos arquivos com esse novo UPLOAD. 

Espero que entendam essa minha duvida.

 

<?php 

include "../_conexao/conexao.php"; 


//Transferir o arquivo 
if (isset($_POST['submit'])) { 
//Importar o arquivo transferido para o banco de dados 
$sql = mysqli_query($conexao,"SELECT cpf_cnpj FROM semaforo"); 

$handle = fopen($_FILES['filename']['tmp_name'], "r"); 
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { 

if ($data[0] != 'situacao_primaria' && !empty($handle)) { 
$import="INSERT into semaforo(id,situacao_primaria,status,data_indicacao,tipo_de_indicacao,tipo_de_distribuicao,categoria,codigo_penumper,nome_do_cliente,cpf_cnpj,negociadores,tipo_pessoa_cliente,uf,cep,municipio_do_cliente,advogado_gestor_interno,numero_operacao,sistema_origem,numero_operacao_origem,familia_do_produto,codigo_produto,nome_do_produto,codigo_agencia,nome_agencia,descricao_segmento,segmento_secundario,descricao_segmento_secundario,situacao_secundaria,data_recebimento,data_credito_liquidacao,valor_da_operacao,valor_transferido_para_creli,valor_da_divida,valor_saldo_contabil,qdt_dias_atraso,nome_da_garantia,ajuizado,codigo_do_ajuizamento,valor_ajuizado,tipo_de_acao,motivo_da_acao,avalista_nome,avalista_cpf_cnpj,avalista_tipo_pessoa,saldo_cm1,recup_judicial_falencia,escob_adm,data_inclusao_escob)values(null,'$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$data[27]','$data[28]','$data[29]','$data[30]','$data[31]','$data[32]','$data[33]','$data[34]','$data[35]','$data[36]','$data[37]','$data[38]','$data[39]','$data[40]','$data[41]','$data[42]','$data[43]','$data[44]','$data[45]','$data[46]')"; 
mysqli_query($conexao, $import) or die(mysqli_error($conexao)); 



fclose($handle); 

print "<center>Transferir <b>SEMÁFORO</b> por arquivo CSV selecione o arquivo clicando no botão <b>escolher arquivo</b>, e envie clicando no botão <b>upload</b>.</center><br /><br />\n"; 

print "<form enctype='multipart/form-data' action='#' method='post'>"; 

print "<center><input size='50' type='file' name='filename'></center><br /><br />\n"; 

print "<center><input type='submit' name='submit' value='Upload'></center></form>"; 

//Visualizar formulário de transferência 
} else { 

print "<center>Transferir <b>SEMÁFORO</b> por arquivo CSV selecione o arquivo clicando no botão <b>escolher arquivo</b>, e envie clicando no botão <b>upload</b>.</center><br /><br />\n"; 

print "<form enctype='multipart/form-data' action='#' method='post'>"; 

print "<center><input size='50' type='file' name='filename'></center><br /><br />\n"; 

print "<center><input type='submit' name='submit' value='Upload'></center></form>"; 



?> 

Esse é meu arquivo, espero que consigam me ajudar. 

Agradeço desde já;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
×
  • Criar Novo...