[Resolvido] PHP - Não Importa dados (TXT) p/ Banco de Dados (MySql)
Caros amigo.
Estou com o seguinte problema:
Não consigo Importar Dados de um arquivo( .TXT) para GRAVAR no Banco de Dados.
O banco de dados está assim:
-- -----------------------------------------------------
-- Table siscotaweb.cotacaoItens
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `siscotaweb`.`cotacaoItens` (
`cotaItensId` INT NOT NULL AUTO_INCREMENT ,
`cotaNumImport` VARCHAR(50) NOT NULL ,
`codProdClie` VARCHAR(50) NOT NULL ,
`cotaDtde` DECIMAL(10,2) NOT NULL ,
`cotaComenta` VARCHAR(150) NOT NULL ,
`cotaVerTxt` VARCHAR(1) NOT NULL ,
`cotaNumero` VARCHAR(50) NOT NULL ,
`cotacao_cotaId` INT NOT NULL ,
PRIMARY KEY (`cotaItensId`) ,
INDEX `fk_cotacaoItens_cotacao1_idx` (`cotacao_cotaId` ASC) ,
CONSTRAINT `fk_cotacaoItens_cotacao1`
FOREIGN KEY (`cotacao_cotaId` )
REFERENCES `siscotaweb`.`cotacao` (`cotaId` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Abaixo o código:
Nessa parte informo qual arquivo desejo:
<div class="col-md-12">
<!-- general form elements -->
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">Importar Itens para Cotação</h3>
</div>
<form role="form" name="cotaItens" id="cotaItens" action="" enctype="multipart/form-data" method="POST" >
<div class="box-body">
<?php
//Pesquisa para verificar se já foi efetuado a Importação do arquivo .TXT
$cnx = mysql_connect("localhost", "root", "");
mysql_select_db("siscotaweb", $cnx);
$sql = mysql_query("SELECT cotaVerTxt FROM cotacaoItens WHERE cotaNumero = '$cotaNumero' AND cotaVerTxt = '1' ");
$res = mysql_num_rows($sql);
?>
<?php if($res > 0){ ?>
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> Alert!</h4>
Após efetuar as alterações necessárias. Clique em Finalizar, para enviar aos Fornecedores!
</div>
<?php } else { ?>
<div class="form-group">
<input type="file" name="arquivo" id="arquivo" required />
<p class="help-block">Atenção! Importar somente arquivo .TXT</p>
<input class="btn btn-primary btn-xs" type="submit" name="confirmar" value="Confirmar">
</div>
<?php } ?>
<input type="hidden" name="cotaId" value="<?php echo $cotaId;?>" />
<input type="hidden" name="cotaNumero" value="<?php echo $cotaNumero;?>" />
</div>
</form>
</div>
</div>
Nesta parte, uso para importar e gravar no Banco de dados.
<?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;
}
if (!empty($_FILES['arquivo'])) {
$Pdo = new PDO("mysql:host=localhost; dbname=siscotaweb", "root", "");
$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);
}
echo '<br/>';
echo '<div class="comunicado">Arquivo Importado com Sucesso!</div><!--aviso-->';
echo '<br/>';
//Redirecionando para Caixa de Enrada do Cliente
echo '<meta http-equiv="refresh" content="2, URL=painel.php?exe=admin-cliente/cotacao_lista" />';
}
?>
Como consigo gravar no Banco de Dados ?
Grato,
RenatoDiscussão (3)
Carregando comentários...