Importar registros de uma planilha excel

kkkkk não te preocupes, isso acontece com todos, principalmente quando estamos pressionados pelo fato de ainda não termos descoberto o erro no sistema… O importante é que conseguiste resolver e ficou a dica para as próximas oportunidades. Vamos em frente!!

Kleyber, ainda dentro deste tema, gostaria de fazer o seguinte:

Antes de Importar, analisar se os telefones que constam no Arquivo CSV já estão no banco de dados.

Para isso, criei uma nova aplicação Controle e a chamei de Analisar Arquivo. O objetivo é que ele Leia o CSV em busca de duplicidade, então fiz um lookup. Fiz separado, pois a idéia, é que ele me mostre uma lista de duplicados, antes de importar. Com esta lista de duplicados, vou conseguir, manualmente, limpar o ARQUIVO CSV e só então importa-lo de vez.

Imagino que isso seja possível dentro da mesma Controle de Importação, mas acho que seria muito mais complexo. Veja o que fiz apenas para analisar as duplicidades:

[code]// Pegando o arquivo com caminho
$caminho = $this->Ini->path_doc;
$_arquivo = $caminho.’/’.{importa_lig};

$_Delimitador = ‘;’;
$_Cerca = ‘"’;

$_Duplicados=0;

// Abrir arquivo para leitura
$arq = fopen($_arquivo, ‘r’);
if ($arq) {

// Ler cabecalho do arquivo
$cabecalho = fgetcsv($arq, 0, $_Delimitador, $_Cerca);

// Enquanto nao terminar o arquivo
while (!feof($arq)) {

    // Ler uma linha do arquivo
    $linha = fgetcsv($arq, 0, $_Delimitador, $_Cerca);
    if (!$linha) {
        continue;
    }

    // Montar registro com valores indexados pelo cabecalho
    $registro = array_combine($cabecalho, $linha);

    // Obtendo campos do CSV
  // Olhar no Seu CSV como estão os NOMES CABEÇALHO dos campos e colocar ['NOME_CAMPO']
	$usuario_clientes = $registro['usuario_clientes'];
 	$data_clientes = $registro['data_clientes'];
	$horario_clientes = $registro['horario_clientes'];
	$recepcao_clientes = $registro['recepcao_clientes'];
	$sexo_clientes = $registro['sexo_clientes'];
	$nome_clientes = $registro['nome_clientes'];
	$idade_clientes = $registro['idade_clientes'];
	$telefone1_clientes = $registro['telefone1_clientes'];
	$telefone2_clientes = $registro['telefone2_clientes'];
	$midia_clientes = $registro['midia_clientes'];
	$profissao_clientes = $registro['profissao_clientes'];
	$estado_civil_clientes = $registro['estado_civil_clientes'];
	$email_clientes = $registro['email_clientes'];
	$nome_conjuge_clientes = $registro['nome_conjuge_clientes'];
	$idade_conjuge_clientes = $registro['idade_conjuge_clientes'];
	$profissao_conjuge_clientes = $registro['profissao_conjuge_clientes'];
	$email_conjuge_clientes = $registro['email_conjuge_clientes'];
	$observacao_clientes = $registro['observacao_clientes'];
	$endereco_clientes = $registro['endereco_clientes'];
	$numero_clientes = $registro['numero_clientes'];
	$complemento_clientes = $registro['complemento_clientes'];
	$bairro_clientes = $registro['bairro_clientes'];
	$cep_clientes = $registro['cep_clientes'];
	$cidade_clientes = $registro['cidade_clientes'];
	$referencia_clientes = $registro['referencia_clientes'];
	$terapeuta_clientes = $registro['terapeuta_clientes'];
	$responsavel_visita_clientes = $registro['responsavel_visita_clientes'];
	$data_visita_clientes = $registro['data_visita_clientes'];
	$horario_visita_clientes = $registro['horario_visita_clientes'];
	$status_clientes = $registro['status_clientes'];
	$filial_clientes = $registro['filial_clientes'];
	$relatorio_visita = $registro['relatorio_visita'];
	$relatorio_venda = $registro['relatorio_venda'];
	$relatorio_ligacoes = $registro['relatorio_ligacoes'];
	$relatorio_agendamento = $registro['relatorio_agendamento'];
	$data_venda_clientes = $registro['data_venda_clientes'];
	$numero_nota_clientes = $registro['numero_nota_clientes'];
	$valor_total_clientes = $registro['valor_total_clientes'];
	$dia_vencimentos_clientes = $registro['dia_vencimentos_clientes'];
	$forma_de_pagamento_clientes = $registro['forma_de_pagamento_clientes'];
	$condicao_de_pagamento_clientes = $registro['condicao_de_pagamento_clientes'];
	$observacoes_financeiro_clientes = $registro['observacoes_financeiro_clientes'];
	$cargo_usuario = $registro['cargo_usuario'];
	$andamento = $registro['andamento'];
	$vendido = $registro['vendido'];
	$reagendamento = $registro['reagendamento'];
	$cancelado = $registro['cancelado'];

  $insert_table  = 'clientes';  // Nome da Tabela
  $insert_fields = array(
	  	'usuario_clientes'				=> "'$usuario_clientes'",
		'data_clientes'					=> "'$data_clientes'",
		'horario_clientes'				=> "'$horario_clientes'",
		'recepcao_clientes'				=> "'$recepcao_clientes'",
		'sexo_clientes'					=> "'$sexo_clientes'",
		'nome_clientes'					=> "'$nome_clientes'",
		'idade_clientes'				=> "'$idade_clientes'",
		'telefone1_clientes'			=> "'$telefone1_clientes'",
		'telefone2_clientes'			=> "'$telefone2_clientes'",
		'midia_clientes'				=> "'$midia_clientes'",
		'profissao_clientes'			=> "'$profissao_clientes'",
		'estado_civil_clientes'			=> "'$estado_civil_clientes'",
		'email_clientes'				=> "'$email_clientes'",
		'nome_conjuge_clientes'			=> "'$nome_conjuge_clientes'",
		'idade_conjuge_clientes'		=> "'$idade_conjuge_clientes'",			
		'profissao_conjuge_clientes'	=> "'$profissao_conjuge_clientes'",
		'email_conjuge_clientes'		=> "'$email_clientes'",
		'observacao_clientes'			=> "'$observacao_clientes'",
		'endereco_clientes'				=> "'$endereco_clientes'",
		'numero_clientes'				=> "'$numero_clientes'",
		'complemento_clientes'			=> "'$complemento_clientes'",
		'bairro_clientes'				=> "'$bairro_clientes'",
		'cep_clientes'					=> "'$cep_clientes'",
		'cidade_clientes'				=> "'$cidade_clientes'",
		'referencia_clientes'			=> "'$referencia_clientes'",
		'terapeuta_clientes'			=> "'$terapeuta_clientes'",
		'responsavel_visita_clientes'	=> "'$responsavel_visita_clientes'",
		'data_visita_clientes'			=> "'$data_visita_clientes'",
		'horario_visita_clientes'		=> "'$horario_visita_clientes'",
		'status_clientes'				=> "'$status_clientes'",
		'filial_clientes'				=> "'$filial_clientes'",
		'relatorio_visita'				=> "'$relatorio_visita'",
		'relatorio_venda'				=> "'$relatorio_venda'",
		'relatorio_ligacoes'			=> "'$relatorio_ligacoes'",
		'relatorio_agendamento'			=> "'$relatorio_agendamento'",
		'data_venda_clientes'			=> "'$data_venda_clientes'",
		'numero_nota_clientes'			=> "'$numero_nota_clientes'",
		'valor_total_clientes'			=> "'$valor_total_clientes'",
		'dia_vencimentos_clientes'		=> "'$dia_vencimentos_clientes'",
		'forma_de_pagamento_clientes'	=> "'$forma_de_pagamento_clientes'",
		'condicao_de_pagamento_clientes'	=> "'$condicao_de_pagamento_clientes'",
		'observacoes_financeiro_clientes'	=> "'$observacoes_financeiro_clientes'",
		'cargo_usuario'					=> "'$cargo_usuario'",
		'andamento'						=> "'$andamento'",
		'vendido'						=> "'$vendido'",
		'reagendamento'					=> "'$reagendamento'",
		'cancelado'						=> "'$cancelado'",
  );

	$sql = "SELECT telefone1_clientes FROM clientes WHERE telefone1_clientes = $telefone1_clientes";
		sc_lookup( ds, $sql);
		if(empty({ds})) {}
		else{
		$id_cli = {ds[0][0]};
		echo $id_cli;
			
		$_Duplicados++;
	}
	
/*
 Inserir registro
  $insert_sql = 'INSERT INTO ' . $insert_table
     . ' (' . implode(', ', array_keys($insert_fields)) . ')'
     . ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';

  	sc_exec_sql($insert_sql);
	sc_commit_trans();

  $_Cadastrados++;
*/

} // Fim: while (!feof($arq))

fclose($arq);

}

if ($_Duplicados==0) {
sc_error_message(“Não há registros Duplicados nesta lista”);
}
else{
{Status}="DUPLICIDADE ENCONTRADA : " . $_Duplicados;
}

[/code]

Ele diz que não há registros duplicados, mas todos da lista são duplicados… onde posso estar errando ?

obrigado !!

Teria que fazer o SELECT pra checar a duplicidade antes de dar o INSERT.

A leitura da planilha pode ser antes jogada em array e a cada insert de dados no array verificar antes se o índice é existente e se for criar um contador no próprio array marcando quantos registros existem para o mesmo índice (ou seja registros duplicados).

Haroldo poderia me dar um exemplo deste que comentou?