[RESOLVIDO] insert a partir de arquivo txt

Olá
Estou usando uma aplicação de formulário mestre/detalhe para importar arquivo txt para inserção no banco de dados, acontece que após a leitura do arquivo txt ele insere juntamente com as linhas do arquivo mais um registro com novo id. Segue código do evento onValidate do form detalhe.

$pathFile = $this->Ini->path_doc . “/” . {arquivo};

$arquivo = fopen($pathFile , ‘r’);

if ($arquivo == false) die(‘Não foi possível abrir o arquivo.’);

while(!feof($arquivo)) {

$linha = fgets($arquivo); // LÊ CADA LINHA
	$dados = explode(";",$linha);

	$campo1 = $dados[0];
	$campo2 = $dados[1];
	$campo3 = $dados[2];
	$campo4 = $dados[3];
	$campo5 = $dados[4];
	$campo6 = $dados[5];

$data = $campo4;
$dia = substr($data, 0, 2);
$mes = substr($data, 3, 2);
$ano = substr($data, 6, 4);
$campo4_gravar = $ano."-".$mes."-".$dia;

//$lancamento = {lancamento_id_cartoes};

//echo "<br>$campo4_gravar";

$teste = sc_exec_sql("INSERT into importar_txt(cnpj, inscricaoestadual, cod_ibge, dt_ope, vlr_cartao_cred, vlr_cartao_deb, lancamento_id_cartoes) VALUES ('$campo1', '$campo2', '$campo3', '$campo4_gravar', '$campo5',  '$campo6', '{lancamento_id_cartoes}')"); //INSERE CADA LINHA

}

if($teste == true){
echo"Sucesso";}
else{
echo"Erro";}

fclose($arquivo);

Consegui!. Tinha algum problema relacionado ao arquivo.

Muito bem! Mas, por favor, edite o primeiro post do tópico e coloque a tag [RESOLVIDO] no início do título.

valeu!

Então o código acima está correto ?

ERENHA
Optei por fazer com uma aplicação de controle. Segue todo o código do evento onvalidate

$pathFile = $this->Ini->path_doc . “/” . {arquivo};

$arquivo = fopen($pathFile , ‘r’);

if ($arquivo == false) die(‘Não foi possível abrir o arquivo.’);

while(!feof($arquivo)) {

$linha = fgets($arquivo); // LÊ CADA LINHA

	$dados = explode(";",$linha);// usa o delimitador ; para separar as colunas (campos a importar), no caso 6 colunas com indefinidas linhas

	$campo1 = $dados[0];
	$campo2 = $dados[1];
	$campo3 = $dados[2];
	$campo4 = $dados[3];
	$campo5 = $dados[4];
	$campo6 = $dados[5];
	
//converte data (quarta coluna do arquivo txt) do formato dd/mm/aaaa para aaaa-mm-dd para inserir no postgres

$data = $campo4;
$dia = substr($data, 0, 2);
$mes = substr($data, 3, 2);
$ano = substr($data, 6, 4);
$campo4_gravar = $ano."-".$mes."-".$dia;

//inserir no banco os campos do txt e os campos da aplicação de controle

$gravar_bd = sc_exec_sql(“INSERT into importar_txt(cnpj, inscricaoestadual, cod_ib, dt_ope, vlr_cartao, vlr_cartao, cliente_id, mes_cartao, ano_cartao) VALUES (’$campo1’, ‘$campo2’, ‘$campo3’, ‘$campo4_gravar’, ‘$campo5’, ‘$campo6’, ‘{cliente}’, ‘{mes_cartao}’, ‘{ano_cartao}’)”); //INSERE CADA LINHA

}

if($gravar_bd == true){
echo"Sucesso";}
else{
echo"Erro";}

fclose($arquivo);

Espero que seja útil!