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