• 0
Sign in to follow this  
remazela101

PHP - Ler TXT e importar para o Banco Dados MySql

Question

Caros amigos

Sou um pouco novato nesta parte. Gostaria de fazer uma importação de arquivos .TXT, com uma clausula de importação.

Como faço após ter lido um arquivo .TXT Linha a Linha, comparar com o Banco Dados e se tiver o código IMPORTA, caso contrário NÃO IMPORTA.

Por exemplo:

código existentes.: 101, 201, 301, 401, 501, etc

código não existe: 301, 501

Abaixo o código que estou usando.

         <?php

          //Variável Passada da Página Anterior
          $cotacao_cotaIdGet = isset($_GET['cotaId']) ? $_GET['cotaId'] : false;
          $cotacao_cotaId  = isset($_POST['cotaId']) ? $_POST['cotaId'] : $cotacao_cotaIdGet;   

          $cotaNumeroGet = isset($_GET['cotaNumero']) ? $_GET['cotaNumero'] : false;
          $cotaNumero    = isset($_POST['cotaNumero']) ? $_POST['cotaNumero'] : $cotaNumeroGet;       

            //Função para importar Arquivo
            function Inserir($itens, Pdo $pdo){
                $sts = $pdo->prepare("INSERT INTO cotacaoItens(cotaNumImport, codProdClie, cotaQtde, cotaVerTxt, cotaNumero, cotacao_cotaId) VALUES(?,?,?,?,?,?);");  

                $sts->bindValue(1, $itens[0], PDO::PARAM_STR);
                $sts->bindValue(2, $itens[1], PDO::PARAM_STR);        
                $sts->bindValue(3, $itens[2], PDO::PARAM_STR);            
                $sts->bindValue(4, $itens[3], PDO::PARAM_STR);        
                $sts->bindValue(5, $itens[4], PDO::PARAM_STR);          
                $sts->bindValue(6, $itens[5], PDO::PARAM_STR);                                
                $sts->execute();
                $sts->closeCursor();
                $sts = NULL;
            }
            
            //Ler o arquivo .TXT
            if (!empty($_FILES['arquivo'])) {
                //Conexão com o Bco Dados
                $Pdo  = new PDO("mysql:host=localhost; dbname=siscotaweb", "root", "");
				//Abre o arquivo TXT
                $file = fopen($_FILES['arquivo']['tmp_name'], 'r');

                while (!feof($file)){
                    $linha = fgets($file);          
                    $itens = explode(';', $linha);   
                    $itens[] = '1';     
                    $itens[] = $cotaNumero;                
                    $itens[] = $cotacao_cotaId;                                  
                    Inserir($itens, $Pdo);
                }
                    //Mensagem de Sucesso
                    echo '<div class="alert alert-info alert-dismissible">        
                              <h4>Arquivo Importado com Sucesso!</h4>            
                          </div>';  

                  //Redirecionando para Caixa de Enrada do Cliente
                  echo '<meta http-equiv="refresh" content="3, URL=painel.php?exe=admin-cliente/cotacao_itensCota&cotaNumero='.$cotaNumero.'"" />';

            }

        ?>

 

Grato,

Renato

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Opa...boa tarde!

Tb sou iniciante, porém já fiz algo parecido. E no meu caso eu resolvi da seguinte forma:

Importei o arquivo txt  inteiro em uma tabela temporária.

Depois mando executar um delete where o código não exista na outra tabela.

E por fim executo um insert na tabela os dados da temporária.

 

Eu achei mais rápido essa solução de importar td do que ler linha por linha e fazer a verificação.

Share this post


Link to post
Share on other sites
  • 0

 

Em 20/04/2018 at 14:57, F4b1nh0 disse:

Opa...boa tarde!

Tb sou iniciante, porém já fiz algo parecido. E no meu caso eu resolvi da seguinte forma:

Importei o arquivo txt  inteiro em uma tabela temporária.

Depois mando executar um delete where o código não exista na outra tabela.

E por fim executo um insert na tabela os dados da temporária.

 

Eu achei mais rápido essa solução de importar td do que ler linha por linha e fazer a verificação.

 

Fabio, por favor, poderia me ajudar.

Teria como enviar esse exemplo para mim ?

Grato.

 

Edited by remazela

Share this post


Link to post
Share on other sites
  • 0
Em 20/04/2018 at 14:57, F4b1nh0 disse:

Opa...boa tarde!

Tb sou iniciante, porém já fiz algo parecido. E no meu caso eu resolvi da seguinte forma:

Importei o arquivo txt  inteiro em uma tabela temporária.

Depois mando executar um delete where o código não exista na outra tabela.

E por fim executo um insert na tabela os dados da temporária.

 

Eu achei mais rápido essa solução de importar td do que ler linha por linha e fazer a verificação.

 

Caro Fabinho, 

 

poderia me ajudar, por favor.

 

Teria como me enviar por e-mail, como fez a comparação de tabelas e exclusão dos itens que não consta no banco de dados.

Meu e-mail: [email protected]

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this