Pessoal boa tarde,
Gostaria que sempre que fosse importado uma arquivo csv, o algoritmo verificasse se já existem registros iguais, se existirem, ele adiciona somente os novos registros atualizando a tabela.
O algoritmo a seguir, faz o procedimento de importação porém o mesmo permite que os mesmos dados sejam importados, gravando os mesmos registros dentro do banco de dados.
Alguém tem uma solução pertinente?
Obrigado galera, grande abraço!
[b]$caminho = $this->Ini->path_doc;
$arq = $caminho.’/’.{arquivo};
$delimitador = ‘,’;
$cerca = ‘"’;
$cadastrados=0;
// Abrir arquivo para leitura
$f = fopen($arq, ‘r’);
if ($f) {
// Ler cabecalho do arquivo
$cabecalho = fgetcsv($f, 0, $delimitador, $cerca);
// Enquanto nao terminar o arquivo
while (!feof($f)) {
// Ler uma linha do arquivo
$linha = fgetcsv($f, 0, $delimitador, $cerca);
if (!$linha) {
continue;
}
// Montar registro com valores indexados pelo cabecalho
$registro = array_combine($cabecalho, $linha);
// Obtendo campos do CSV
// Olhar no Sseu CSV como estão os NOMES CABEÇALHO dos campos e colocar ['NOME_CAMPO']
$nome_x = $registro['nome'];
$endereco_x = $registro['endereco'];
$numero_x = $registro['numero'];
/*$QT_PESSOA_SERVICO_x = $registro['QT_PESSOA_SERVICO'];
$VL_PESSOA_SERVICO_x = $registro['VL_PESSOA_SERVICO'];
$DS_OBSERVACAO_x = $registro['DS_OBSERVACAO'];
$DS_CONVENIO_x = $registro['DS_CONVENIO'];
$DT_CADASTRO_x = $registro['DT_CADASTRO'];
$CD_USUARIO_CADASTRO_x = $registro['CD_USUARIO_CADASTRO'];
$DT_ATUALIZACAO_x = $registro['DT_ATUALIZACAO'];
$CD_USUARIO_ATUALIZACAO_x = $registro['CD_USUARIO_ATUALIZACAO'];*/
$insert_table = 'testetab'; // Nome da Tabela
$insert_fields = array(
'nome' => "'$nome_x'",
'endereco' => "'$endereco_x'",
'numero' => "$numero_x",
/*'QT_PESSOA_SERVICO' => "$QT_PESSOA_SERVICO_x",
'VL_PESSOA_SERVICO' => "$VL_PESSOA_SERVICO_x",
'DS_OBSERVACAO' => "'$DS_OBSERVACAO_x'",
'DS_CONVENIO' => "'$DS_CONVENIO_x'",
'DT_CADASTRO' => "'$DT_CADASTRO_x'",
'CD_USUARIO_CADASTRO' => "$CD_USUARIO_CADASTRO_x",
'DS_CONVENIO' => "'$DS_CONVENIO_x'",
'DT_ATUALIZACAO' => "'$DT_ATUALIZACAO_x'",
'CD_USUARIO_ATUALIZACAO' => "$CD_USUARIO_ATUALIZACAO_x"*/
);
// Inserir registro
$insert_sql = 'INSERT INTO ' . $insert_table
. ' (' . implode(', ', array_keys($insert_fields)) . ')'
. ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';
sc_exec_sql($insert_sql);
$cadastrados++;
}
fclose($f);
}
if ($cadastrados==0) {
sc_error_message(“Não há registros a atualizar, verifique”);
} else {
sc_error_message("Lojas cadastradas: " . $cadastrados);
}[/b]