Ir para conteúdo
Fórum Script Brasil
  • 0

PHP - Ler TXT e importar para o Banco Dados MySql


remazela101

Pergunta

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

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 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.

Link para o comentário
Compartilhar em outros 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.

 

Editado por remazela
Link para o comentário
Compartilhar em outros 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: upxmais@gmail.com

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...