IMPORTAR CSV

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]

Usa o sc_lookup para checar antes de inserir os registros ai você direciona o que vai acontecer, ignorar ou gravar.
http://www.scriptcase.com.br/docs/pt_br/v81/manual_mp.htm#macros-scriptcase/macros-scriptcase

/* Macro sc_lookup */

$sql ="
SELECT
CodigoClienteID,
NomeCliente,
CPF
FROM
clientes
WHERE
CodigoID = {CodigoID}

";

sc_lookup(cli, $sql)

/* Erro no lookup /
if (FALSE === {cli}) {
sc_error_message(“Ocorreu um erro no acesso ao banco de dados.
”);
}
elseif (empty({cli})) { /
EOF */

sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");

}
else {

/* Inclua aqui sua rotina de processamento */

     $CodigoClienteID_x = {cli[$j][0]};
     $NomeCliente_x = {cli[$j][1]};
     $CPF_x = {cli[$j][2]};		 

}

Agradeço a resposta, devo verificar linha a linha do da planilha e comparar se cada linha possui dados iguais ao que já estão gravados no banco, caso todos forem iguais, ele não grava nada, caso algum seja diferente, ele grava na ultima linha do banco de dados.
Essa é a lógica que preciso desenvolver.

Gabriel,

Eu já desenvolvi uma rotina assim e o que fiz foi pegar uma coluna do CSV que sei que não se repete e com essa coluna faço a verificação na tabela pra ver se já existe. Se não existir, a rotina continua. Vou buscar essa rotina e posto pra você entender como fiz. Só que só poderei enviar à noite.

Kleyber ficarei no aguardo, um abraço cara e valeu a força.

Consegui desenvolver uma lógica aqui, porém agora o meu objetivo é usar o mesmo código porém para importar arquivos do tipo xls.
Será possível?

Você vai usar a lib PHPExcel:
https://suporte.scriptcase.com.br/index.php?/Knowledgebase/Article/View/688/0/aplicacao-com-importacao-excel

Veja o vídeo que tem no link também.

A lógica na hora de gravar é a mesma coisa com sc_lookup caso não quiser gravar duplicados.

Bom dia, creio eu que terei dificuldades pois meu objetivo é desenvolver um recurso de importação semelhante ao nativo do scriptcase, que no mínimo proporcione ao usuário a opção de escolha de quais tabelas ele quer importar.