Verifica, e salva novamente este arquivo do EXCEL em extensão CSV, se não vai dar esse erro mesmo, o EXCEL é codificado/criptografado no padrão dele.
Kleyber, bom dia.
Agradeço pela dica.
Mas acho que o erro está dando um pouco antes do insert, no camando select
$check_sql = ‘SELECT * FROM TB_BI_PESSOA_SERVICO ’
.’ WHERE CPF_CNPJ = “’.$campo[0].’” AND CD_SERVICO = ‘.$campo[1]
.’ AND DT_PESSOA_SERVICO = “’.$campo[2].’”’;
Jailton, bom dia.
a dica funcionou, obrigado.
Mas me deparei com outro problema. Ao recuperar a linha retorna o valor : coluna1;coluna2;coluna3;coluna4;coluna5.
Preciso separar as colunas, porque as colunas : coluna1 e coluna3 são caracteres. Portanto, preciso incluir as aspas antes do insert na tabela.
Desde já agradeço.
Arranca toda a parte do seu INSERT e ADAPTA esse meu código, olha como fica fácil fazer INSERT.
INSERT (METÓDO NOVO DO SC, Melhor para facilitar inclusão)
$insert_table = 'TBLMOV'; // Nome da Tabela
$insert_fields = array(
'CODINFENTRADA' => "[glo_codientrada]",
'DESCRINFENTRADA' => "[glo_descrientrada]",
'qtdmov' => "[glo_qtdentrada]",
'OBSNFENTRADA' => "$Obs_Entrada_x",
'datamov' => "'{Data}'",
'DATAEMISSAO' => "'2016-01-06'",
'customov' => "[glo_vlrentrada]",
'coditem' => "0"
);
// Inserir registro
$insert_sql = 'INSERT INTO ' . $insert_table
. ' (' . implode(', ', array_keys($insert_fields)) . ')'
. ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';
sc_exec_sql($insert_sql);
Jailton, bom dia.
Vou seguir a dica.
Mas como vou recuperar os valores campo a campo para atribuir no “$insert_fields”, porque o retorno do arquivo CSV é uma string “coluna1;coluna2;coluna3;coluna4;coluna5” com dados variáveis? Exemplo : “MARIA;1;10/05/2015;1212;121213”
Existe uma função substring, onde o valor da “coluna1” vai até encontrar o caracter “;” (Exemplo : coluna1 = MARIA) ? E assim por diante até recuperar o valor da última coluna.
$insert_fields = array(
‘CODINFENTRADA’ => “coluna1”,
‘DESCRINFENTRADA’ => “coluna2”,
‘qtdmov’ => “coluna3”,
‘OBSNFENTRADA’ => “coluna4”,
‘datamov’ => “‘coluna5’”
);
Desde já agradeço.
Essa parte onde você coloca os valores nas variáveis você mantem, é só na hora de gerar o INSERT que vai usar a outra parte.
$CPF_CNPJ = $campo[0];
$CD_SERVICO = $campo[1];
$DT_PESSOA_SERVICO = $campo[2];
$QT_PESSOA_SERVICO = $campo[3];
$VL_PESSOA_SERVICO = $campo[4];
$DS_OBSERVACAO = $campo[5];
$DS_CONVENIO = $campo[6];
$DT_CADASTRO = ‘01/01/2000’;
$CD_USUARIO_CADASTRO = [gloLogin];
$DT_ATUALIZACAO = ‘01/01/2000’;
$CD_USUARIO_ATUALIZACAO = [gloLogin];
Jailton,
após converter o arquivo excel para CSV.
O valor do “$campo[0]” retorna a string toda “coluna1;coluna2;coluna3;coluna4;coluna5” ( “MARIA;1;10/05/2015;1212;121213”) e não somente o valor “coluna1”, neste caso MARIA.
Por isso, questionei sobre uma função substring para quebrar o valor dos campos.
Refiz seu código agora só adaptar os nome dos campos e ver se são números ou alfanuméricos, como não tenho o CSV e nem a BASE aqui chutei alguns, ai só colocar ’ ou tirar no $insert_fields
<?php
// Exemplo de scrip para exibir os nomes obtidos no arquivo CSV de exemplo
// CÓDIGO (OnValidate) :
// Pegando o arquivo com caminho
$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']
$CPF_CNPJ_x = $registro['CPF_CNPJ'];
$CD_SERVICO_x = $registro['CD_SERVICO'];
$DT_PESSOA_SERVICO_x = $registro['DT_PESSOA_SERVICO'];
$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 = 'TB_BI_PESSOA_SERVICO'; // Nome da Tabela
$insert_fields = array(
'CPF_CNPJ' => "'$CPF_CNPJ_x'",
'CD_SERVICO' => "$CD_SERVICO_x",
'DT_PESSOA_SERVICO' => "'$DT_PESSOA_SERVICO_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);
}
?>
http://www.melhorweb.com.br/artigo/704-Abrindo-arquivos-CSV-com-PHP.htm
Jailton, bom dia.
Agradeço por escrever o código.
Somente ontem consegui realizar os testes e surgiu a situação :
Quando seleciono o arquivo e clico no OK, começa a leitura do arquivo e não “anda”, ou seja, fica processando e trata o sistema. Tenho que iniciar o SC.
O problema deve estar na parte do While, será que não está faltando algum comando ou função?
CÓDIGO :
// Exemplo de scrip para exibir os nomes obtidos no arquivo CSV de exemplo
// CÓDIGO (OnValidate) :
// Pegando o arquivo com caminho
$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']
$CPF_CNPJ_x = $registro['CPF_CNPJ'];
$CD_SERVICO_x = $registro['CD_SERVICO'];
$DT_PESSOA_SERVICO_x = $registro['DT_PESSOA_SERVICO'];
$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 = 'TB_BI_PESSOA_SERVICO'; // Nome da Tabela
$insert_fields = array(
'CPF_CNPJ' => "'$CPF_CNPJ_x'",
'CD_SERVICO' => "$CD_SERVICO_x",
'DT_PESSOA_SERVICO' => "'$DT_PESSOA_SERVICO_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'",
'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("Pessoas Serviço cadastrados: " . $cadastrados);
}
ARQUIVO CSV
[‘CPF_CNPJ’] [‘CD_SERVICO’] [‘DT_PESSOA_SERVICO’] [‘QT_PESSOA_SERVICO’] [‘VL_PESSOA_SERVICO’] [‘DS_OBSERVACAO’] [‘DS_CONVENIO’] [‘DT_CADASTRO’] [‘CD_USUARIO_CADASTRO’] [‘DT_ATUALIZACAO’] [‘CD_USUARIO_ATUALIZACAO’]
1 1 05/04/2016 1 50 a d 01/01/2010 [gloLogin] 01/01/2010 [gloLogin]
1 2 05/04/2016 1 70 a d 01/01/2010 [gloLogin] 01/01/2010 [gloLogin]
Desde já agradeço.
Veja se os delimitador do seu cabeçalho do seu csv são esses:
$delimitador = ‘;’;
$cerca = ‘’;
Tem gente que usa: , e aspa dupla entre os campos.
$delimitador = ‘,’;
$cerca = ‘"’;
Um exemplo da função:
http://www.melhorweb.com.br/artigo/704-Abrindo-arquivos-CSV-com-PHP.htm
Essa parte: // Olhar no seu CSV como estão os NOMES CABEÇALHO dos campos e colocar [‘NOME_CAMPO’] não é pra vc fazer no CSV é pra fazer no código era só pra olhar,
o nome do cabeçalho no CSV e ajustar o código
Se tava:
NOME;ENDERECO;CIDADE ai no código do php ali naquela parte arruma de acordo com o nome do campo que tá no .csv
Pelo visto, não tem delimitador no CSV… daí tem que usar brancos mesmo do tipo ’ ’
Amigos, bom dia.
Funcionou utilizando os limitadores :
$delimitador = ‘;’;
$cerca = ‘"’;
Agradeço pela ajuda.
Boa noite pessoal, tenho tentado fazer a aplicação para importar, mas sem sucesso. Porém, acho que estou muito próximo de realizar com as postagens a este respeito… a Aplicação chega a exibir a mensagem de Ligações Cadastradas com Sucesso !! Tudo perfeito, mas na base não entra… Através do phpMyAdmin usando o mesmo CSV ela insere. Por favor, se puderem me ajudar, eu agradeço muito.
dei um ECHO $insert_sql;
// Pegando o arquivo com caminho
$caminho = $this->Ini->path_doc;
$_arquivo = $caminho.'/'.{importa_lig};
$_Delimitador = ';';
$_Cerca = '"';
$_Cadastrados=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 = 'clientes2'; // 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'",
);
// 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++;
} // Fim: while (!feof($arq))
fclose($arq);
}
ECHO $insert_sql;
if ($_Cadastrados==0) {
sc_error_message("Não há registros a atualizar, verifique");
} else {
sc_error_message("Ligações cadastradas: " . $_Cadastrados);
}
{Status}="** Concluído **";
Coloque sc_commit_trans(); desta forma:
sc_exec_sql($insert_sql);
sc_commit_trans();
Coloque sc_commit_trans(); desta forma:Código: [Selecionar]
sc_exec_sql($insert_sql);
sc_commit_trans();
Boa noite Kleyber, obrigado pelo apoio, mas infelizmente não houve efeito. Pior é que não dá mensagem de erro alguma… ele processa tudo, diz que inseriu, mas não entra na base…
[code] // 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))
[/code]
Há uma coisa estranha que acontece que pode ser algum problema no CSV. Quando importo diretamente pelo PHPMYADMIN, ele insere também o cabeçalho, como se fossem dados. Os delimitadores usados estão corretos, veja em texto o arquivo CSV:
id_clientes;usuario_clientes;data_clientes;horario_clientes;recepcao_clientes;sexo_clientes;nome_clientes;idade_clientes;telefone1_clientes;telefone2_clientes;midia_clientes;profissao_clientes;estado_civil_clientes;email_clientes;nome_conjuge_clientes;idade_conjuge_clientes;profissao_conjuge_clientes;email_conjuge_clientes;observacao_clientes;endereco_clientes;numero_clientes;complemento_clientes;bairro_clientes;cep_clientes;cidade_clientes;referencia_clientes;terapeuta_clientes;responsavel_visita_clientes;data_visita_clientes;horario_visita_clientes;status_clientes;filial_clientes;relatorio_visita;relatorio_venda;relatorio_ligacoes;relatorio_agendamento;data_venda_clientes;numero_nota_clientes;valor_total_clientes;dia_vencimentos_clientes;forma_de_pagamento_clientes;condicao_de_pagamento_clientes;observacoes_financeiro_clientes;cargo_usuario;andamento;vendido;reagendamento;cancelado
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;20001223423;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(48) 99632-2134;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 4648-1263;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 2961-6098;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(71) 3452-0057;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(21) 97524-8471;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(71) 99156-8638;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(85) 98724-6472;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(21) 3038-1016;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(21) 3686-2205;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(31) 3482-0959;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(31) 3225-8087;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(47) 99157-7575;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 5661-8797;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 2057-5227;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(21) 99581-1260;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(24) 2248-1344;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 97543-7288;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 95312-0720;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 4399-1112;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Keila;;importadp;;(11) 95177-8891;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 3854-0149;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 98717-9350;;;;;;;;;;;;;;;;;;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 98318-5768;;;;;;;;;;;;;;;;; ;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
;neia-perssinoto;2017/11/14;00:00:00;Neia;;importadp;;(11) 2951-4476;;;;;;;;;;;;;;;;; ;;;1999/01/01;00:00:00;PENDENTE;;0;0;0;0;1999/01/01;;0.00;;;;;;;;;
Deste uma olhada neste tópico aqui: http://www.scriptcase.com.br/forum/index.php/topic,8355.msg40797.html#msg40797 ? Talvez ajude.
Vergonhoso, mas preciso dizer, preciso ser honesto com todos do fórum e principalmente com o Kleyber que me ajudou…
Depois de horas e horas quebrando a cabeça, percebi o meu erro… Eu testava em localhost, recebia a mensagem de Ligações Inseridas, mas eu olhava a base no servidor, por isso não via os dados inseridos. Mil desculpas…
Kleyber, com base no seu código, está funcionando 100%, desculpas pela minha falta de atenção. As vezes está na nossa frente e não vemos o óbvio.
mais uma vez, obrigado e desculpas !!
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 !!