Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

conn3ct

Importar dados do arquivo txt pelo php para o BD

Recommended Posts

Primeiro desculpe pela falta de conhecimento em php, estou procurando estudar e aprender cada vez mais, a situação é seguinte , preciso montar um script php para importar os dados de um arquivo txt que é gerado de um programa para o bd do site , só que está num formato que não tenho a minima noçao de como fazer:

 

esta assim:

 

[Produtos]
1Cod_Sub_Item=19786
1Cod_EAN=0
1Cod_Referencia=1121001780
1Descricao_Completa=BISCOITO LION 2,7 CM POA PR C/ BR
1Descricao_ECF=BISCOITO LION
1IPI=1,000
1NCM=00000000
1CST_ICMS=40
1Aliquota_ICMS=0,00
1CST_PIS=1
1CST_COFINS=1
1Fornecedor=15 DE NOVEMBRO
1CNPJCPF_Fornecedor=
2Cod_Sub_Item=6520
2Cod_EAN=9517
2Cod_Referencia=09517
2Descricao_Completa=QUEIJO 15 DE NOVEMBRO KG MINAS
2Descricao_ECF=QUEIJO 15 DE NOVEMBRO
2IPI=0,000
2NCM=04061010
2CST_ICMS=0
2Aliquota_ICMS=19,00
2CST_PIS=6
2CST_COFINS=6
2Fornecedor=15 DE NOVEMBRO
2CNPJCPF_Fornecedor=

 

Não sei como fazer o script para importar este dados no formato das informações que esta esse txt.

 

 

o arquivo de exportação para sair no formato que o programa aceita criar consegui criar segue abaixo:

 

<?php
$conexao = mysql_connect("xxx","xxx","xxx");
$banco = mysql_select_db("xxx",$conexao);
$arquivo = fopen("lion.txt","w");
$seleciona_dados =mysql_query("SELECT * FROM produtos");
while($dados=mysql_fetch_array($seleciona_dados)){
$id=$dados['id'];
$Cod_Sub_Item=$dados['Cod_Sub_Item'];
$Cod_EAN=$dados['Cod_EAN'];
$Cod_Referencia=$dados['Cod_Referencia'];
$Descricao_Completa=$dados['Descricao_Completa'];
$Descricao_ECF=$dados['Descricao_ECF'];
$IPI=$dados['IPI'];
$NCM=$dados['NCM'];
$CST_ICMS=$dados['CST_ICMS'];
$Aliquota_ICMS=$dados['Aliquota_ICMS'];
$CST_PIS=$dados['CST_PIS'];
$CST_COFINS=$dados['CST_COFINS'];
$Fornecedor=$dados['Fornecedor'];
$CNPJCPF_Fornecedor=$dados['CNPJCPF_Fornecedor'];
fwrite($arquivo,$id."Cod_Sub_Item=".$Cod_Sub_Item."\n".$id."Cod_EAN=".$Cod_EAN."\n".$id."Cod_Referencia=".$Cod_Referencia."\n".$id."Descricao_Completa=".$Descricao_Completa."\n".$id."Descricao_ECF=".$Descricao_ECF."\n".$id."IPI=".$IPI."\n".$id."NCM=".$NCM."\n".$id."CST_ICMS=".$CST_ICMS."\n".$id."Aliquota_ICMS=".$Aliquota_ICMS."\n".$id."CST_PIS=".$CST_PIS."\n".$id."CST_COFINS=".$CST_COFINS."\n".$id."Fornecedor=".$Fornecedor."\n".$id."CNPJCPF_Fornecedor=".$CNPJCPF_Fornecedor."\n");
}
foreach(file("lion.txt") as $valor){
echo "<br>".$valor;
}

Por favor pesso uma ajuda!

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, não precisa se desculpar. Todos estão aqui pra aprender :)

 

No seu caso, eu faria o seguinte:

 

1. Ler o arquivo linha por linha. Pode usar fgets() para isso

2. Em cada linha, usar sscanf() para ler cada trecho da string, já que não existe um separador, como ocorre em um arquivo CSV, por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Beraldo,

Obrigado por responder e ja me indicar um caminho , mas teria como vc postar um exemplo?

Estou muito cru ainda em php ... Ja estou 3 dias tentando aprender isso :( .

Muito obrigado mais uma vez.

 

 

Att.

Sergio Vitorino

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou só postar uma linha que ai estudo e faço as outras, um professor de php me cobrou 75 reais para me ensinar mais estou totalmente sem dinheiro, se tiver como dar essa ajuda amigos ficaria muito grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou sugerir que se baseie no Exemplo #1 do manual de fgets

<?php
$handle = @fopen("/tmp/arquivodeentrada.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Erro: falha inexperada de fgets()\n";
    }
    fclose($handle);
}
?>

(Esse "@" está usado corretamente, por isso nem o retirei, mas sugiro tomar cuidado, principalmente por você ser iniciante. Recomendo ler este link)

 

Nesse caso, a variável $buffer tem o conteúdo de cada linha, a cada iteração do loop

 

Veja um exemplo de como usar sscanf()

php > $buffer = "1Cod_Sub_Item=19786";
php > sscanf($buffer, "%d%s=%d", $num1, $txt, $num2);
php > echo $num1;
1
php > echo $txt;
Cod_Sub_Item=19786
php > echo $num2;

(nesse exemplo usei o Shell Interativo. Se não conhecer, veja este artigo).

 

Minha sugestão do sscanf() não deu muito certo, na verdade. O "%s" pegou o "=" e o número.

 

Nesse caso, creio que o ideal seria usar Expressões Regulares. preg_match() vai resolver isso de forma fácil.

 

Aqui tem um livro completo e gratuito sobre ERs: http://aurelio.net/regex/guia/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo to lendo os site e apostila que passou, ja fiz varios testes, mas sem resultado :( ta complicado, não é por falta de interesse não... por favor me ajuda ai ,estou quase desistindo do projeto,cara é quase impossivel fazer isso =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se expressão regular é um problema para você usa o explode, não é bonito mas também vai funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se expressão regular é um problema para você usa o explode, não é bonito mas também vai funcionar.

Pode dar um exemplo amigo? em cima desse tipo de arquivo txt de importação

 

desde ja

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
1Cod_Sub_Item=19786

1Cod_EAN=0

1Cod_Referencia=1121001780


Como vou fazer para inserir só os valores e desconsiderar a descrição do campo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara trabalhar com arquivo txt no inicio é meio complicado.

Adaptei um pouco o primeiro exemplo do Beraldo com base no que você precisa, veja se atende seu objetivo.

<?php

//Necessario Mudar o "arquivo.txt" para o nome do arquivo.txt
$handle = @fopen("arquivo.txt", "r");

$produtos = array();
// $i = 0;

if ($handle) {
	
	while (($buffer = fgets($handle, 4096)) !== false) {
		$linha = trim($buffer);
		if($linha == '[Produtos]') continue;
		
		list($chave, $valor) = explode('=', $linha);
		
		$n = preg_replace("/[^0-9\s]/", "", $chave);
		$chave = preg_replace("/[0-9\s]/", "", $chave);
		
		$produtos[$n][$chave] = $valor;
	}
    
	if (!feof($handle)) {
        echo "Erro: falha inexperada de fgets()\n";
    }
    fclose($handle);
}
var_dump($produtos);

A saída vai ser:

array (size=2)
1 =>
array (size=13)
'Cod_Sub_Item' => string '19786' (length=5)
'Cod_EAN' => string '0' (length=1)
'Cod_Referencia' => string '1121001780' (length=10)
'Descricao_Completa' => string 'BISCOITO LION 2,7 CM POA PR C/ BR' (length=33)
'Descricao_ECF' => string 'BISCOITO LION' (length=13)
'IPI' => string '1,000' (length=5)
'NCM' => string '00000000' (length=8)
'CST_ICMS' => string '40' (length=2)
'Aliquota_ICMS' => string '0,00' (length=4)
'CST_PIS' => string '1' (length=1)
'CST_COFINS' => string '1' (length=1)
'Fornecedor' => string '15 DE NOVEMBRO' (length=14)
'CNPJCPF_Fornecedor' => string '' (length=0)
2 =>
array (size=13)
'Cod_Sub_Item' => string '6520' (length=4)
'Cod_EAN' => string '9517' (length=4)
'Cod_Referencia' => string '09517' (length=5)
'Descricao_Completa' => string 'QUEIJO 15 DE NOVEMBRO KG MINAS' (length=30)
'Descricao_ECF' => string 'QUEIJO 15 DE NOVEMBRO' (length=21)
'IPI' => string '0,000' (length=5)
'NCM' => string '04061010' (length=8)
'CST_ICMS' => string '0' (length=1)
'Aliquota_ICMS' => string '19,00' (length=5)
'CST_PIS' => string '6' (length=1)
'CST_COFINS' => string '6' (length=1)
'Fornecedor' => string '15 DE NOVEMBRO' (length=14)
'CNPJCPF_Fornecedor' => string '' (length=0)


Explicando ...
basicamente a cada laço

while (($buffer = fgets($handle, 4096)) !== false) {

eu retiro os espaços de cada linha (só pra garantir mesmo)

Essa linha:

if($linha == '[Produtos]') continue;

Pula para a próxima iteração.

list($chave, $valor) = explode('=', $linha);

O list em conjunto com o explode
transforma uma string "oi=2"
em 2 variáveis

Ex:
sendo chave = 'oi' e valor = '2'

Aqui:

$n = preg_replace("/[^0-9\s]/", "", $chave);
$chave = preg_replace("/[0-9\s]/", "", $chave);

Expressão regular, sem novidade, assim separa oq é decimal do que não é.

E finalmente aloca dentro do laço.

$produtos[$n][$chave] = $valor;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas eu fiquei confuso hahaha

 

acho q escrevi código pra caramba atoa. (objetivo era jogar tudo num array de arrays)

uma opção era dar um insert a cada interação? (não me venha com o problema do n+1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Cara trabalhar com arquivo txt no inicio é meio complicado.

 

Adaptei um pouco o primeiro exemplo do Beraldo com base no que você precisa, veja se atende seu objetivo.

 

<?php

//Necessario Mudar o "arquivo.txt" para o nome do arquivo.txt
$handle = @fopen("arquivo.txt", "r");

$produtos = array();
// $i = 0;

if ($handle) {
	
	while (($buffer = fgets($handle, 4096)) !== false) {
		$linha = trim($buffer);
		if($linha == '[Produtos]') continue;
		
		list($chave, $valor) = explode('=', $linha);
		
		$n = preg_replace("/[^0-9\s]/", "", $chave);
		$chave = preg_replace("/[0-9\s]/", "", $chave);
		
		$produtos[$n][$chave] = $valor;
	}
    
	if (!feof($handle)) {
        echo "Erro: falha inexperada de fgets()\n";
    }
    fclose($handle);
}
var_dump($produtos);

A saída vai ser:

 

 

Explicando ...

basicamente a cada laço

while (($buffer = fgets($handle, 4096)) !== false) {

eu retiro os espaços de cada linha (só pra garantir mesmo)

 

Essa linha:

if($linha == '[Produtos]') continue;

Pula para a próxima iteração.

 

list($chave, $valor) = explode('=', $linha);

O list em conjunto com o explode

transforma uma string "oi=2"

em 2 variáveis

 

Ex:

sendo chave = 'oi' e valor = '2'

 

Aqui:

$n = preg_replace("/[^0-9\s]/", "", $chave);
$chave = preg_replace("/[0-9\s]/", "", $chave);

Expressão regular, sem novidade, assim separa oq é decimal do que não é.

 

E finalmente aloca dentro do laço.

$produtos[$n][$chave] = $valor;

Poxa cara desde já muito obrigado ,Deus te abençoe cara.

Estou a 4 dias direto agarrado nisso chego do trabalho fico ate as 3 da manhã tentando vou rodar aqui e te dou um retorno muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta meio tarde haha provavel q tem maneiras melhores mas só pra você ter um exemplo funcional.


O restante do script fica assim (oq faz o insert)

Basicamente ele faz um Insert multiplo.

INSERT TABELA(COL)VALUES (1), (2),(3);
Testei a query e executou certinho.

Obviamente desde que você tenha a tabela.

CREATE TABLE `stb` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `Cod_Sub_Item` varchar(250) DEFAULT NULL,
  `Cod_EAN` varchar(250) DEFAULT NULL,
  `Cod_Referencia` varchar(250) DEFAULT NULL,
  `Descricao_Completa` varchar(250) DEFAULT NULL,
  `Descricao_ECF` varchar(250) DEFAULT NULL,
  `IPI` varchar(250) DEFAULT NULL,
  `NCM` varchar(250) DEFAULT NULL,
  `CST_ICMS` varchar(250) DEFAULT NULL,
  `Aliquota_ICMS` varchar(250) DEFAULT NULL,
  `CST_PIS` varchar(250) DEFAULT NULL,
  `CST_COFINS` varchar(250) DEFAULT NULL,
  `Fornecedor` varchar(250) DEFAULT NULL,
  `CNPJCPF_Fornecedor` varchar(250) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;



No meu teste todas as colunas tinham

<?php

// var_dump($produtos);
// Aqui cria o Inicio do Insert
$keys = array();
// $valores = array();


$sql = "INSERT INTO stb (";

foreach($produtos as $produto){
	foreach($produto as $key => $val){
		$keys[] = $key;
	}
	$sql .= implode(',', $keys) . ') VALUES ';
	break;
}

foreach($produtos as $produto){
	$valores = array();
	foreach($produto as $key => $val){
		$val = str_replace("'", '', $val);
		$valores[] = "'$val'";
	}
	$sql .= '(' . implode(',', $valores) . '),';
	
}
// echo $x;die();
$sql = substr($sql, 0, -1);
echo $sql;

Compartilhar este post


Link para o post
Compartilhar em outros sites

No começo eu comentei sobre sscanf, mas não tinha dado certo. Sugeri preg_match, então aqui está um exemplos simples de como usar preg_match em vez do sscanf no meu código de exemplo:

 

 

php > $buffer = "1Cod_Sub_Item=19786";php > preg_match("/([0-9]+)([^=]+)=([0-9]+)/iu", $buffer, $matches);
php > print_r($matches);
Array
(
    [0] => 1Cod_Sub_Item=19786
    [1] => 1
    [2] => Cod_Sub_Item
    [3] => 19786
)
php >

 

Depois é só associar os índices 1, 2 e 3 às variáveis correspondentes.

 

Mais informações no manual de preg_match

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora um novo erro ao inserir o maior volume de dados no bd

 

Erro

Static analysis:

12 errors were found during analysis.

  1. 13 values were expected, but found 11. (near "(" at position 1167)
  2. 13 values were expected, but found 11. (near "(" at position 1278)
  3. 13 values were expected, but found 11. (near "(" at position 1397)
  4. 13 values were expected, but found 11. (near "(" at position 1558)
  5. 13 values were expected, but found 11. (near "(" at position 1890)
  6. 13 values were expected, but found 11. (near "(" at position 2060)
  7. 13 values were expected, but found 11. (near "(" at position 2221)
  8. 13 values were expected, but found 11. (near "(" at position 2387)
  9. 13 values were expected, but found 11. (near "(" at position 2560)
  10. 13 values were expected, but found 11. (near "(" at position 2733)
  11. 13 values were expected, but found 11. (near "(" at position 2908)
  12. 13 values were expected, but found 11. (near "(" at position 3079)

Comando SQL:

INSERT INTO produtos (Cod_Sub_Item,Cod_EAN,Cod_Referencia,Descricao_Completa,Descricao_ECF,IPI,NCM,CST_ICMS,Aliquota_ICMS,CST_PIS,CST_COFINS,Fornecedor,CNPJCPF_Fornecedor) VALUES ('19786','0','1121001780','BISCOITO LION 2,7 CM POA PR C/ BR','BISCOITO LION','1,000','00000000','40','0,00','1','1','15 DE NOVEMBRO',''),('19787','0','1121001781','BISCOITO LION 3,6 CM POA PR C/ BR','BISCOITO LION','1,000','00000000','40','0,00','1','1','15 DE NOVEMBRO',''),('6520','9517','09517','QUEIJO 15 DE NOVEMBRO KG MINAS','QUEIJO 15 DE NOVEMBRO','0,000','04061010','0','19,00','6','6','15 DE NOVEMBRO',''),('6521','30859524','09524','QUEIJO 15 DE NOVEMBRO KG RICOTA','QUEIJO 15 DE NOVEMBRO','0,000','04061010','0','19,00','6','6','15 DE NOVEMBRO',''),('6089','5233','05233','QUEIJO 15 DE NOVEMBRO RALADO KG PARMESAO','QUEIJO 15 DE NOV RALADO','0,000','04061010','0','19,00','6','6','15 DE NOVEMBRO',''),('101','7896002100014','','AGUARDENTE PIRASSUNUNGA 51 965 ML TRADICIONAL','AGUARDENTE PIRASSUNUNGA','0,000','28084000','60','0,00','1','1','51',''),('3724','7890000124010','012401','BALA 7 BELO 7 G FRAMBOESA','BALA 7 BELO','0,000','17049020','60','0,00','1','1','7 BELO',''),('3727','12648','012648','BALA 7 BELO 7 G MACA VERDE','BALA 7 BELO','0,000','17049020','0','0,00','7 BELO',''),('3725','7891118007301','012402','BALA 7 BELO 700 G IOGURTE','BALA 7 BELO','0,000','17049020','60','0,00','7 BELO',''),('17082','7896002300834','','BISCOITO CROCANTISSIMO 45 G BARBECUE RIBS','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('14582','7896002300117','','BISCOITO CROCANTISSIMO 45 G BIFE ACEBOLADO','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('9263','7896002364768','','BISCOITO CROCANTISSIMO 45 G CEBOLA E QUEIJO','BISC CROCANTISSIMO','0,000','19041000','0','0,00','1','1','A C MAGALHAES','07.566.652/0001-37'),('16279','7896002309301','','BISCOITO CROCANTISSIMO 45 G CHURRASCO C/ VINAGRETE','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('16278','7896002309318','','BISCOITO CROCANTISSIMO 45 G FONDUE QUEIJO','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('11762','7896002365956','','BISCOITO CROCANTISSIMO 45 G MANTEIGA TEMPERADA','BISC CROCANTISSIMO','0,000','19041000','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('10591','7896002365963','','BISCOITO CROCANTISSIMO 45 G PEITO DE PERU C/REQUEIJAO','BISC CROCANTISSIMO','0,000','19041000','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('14063','7896002369732','','BISCOITO CROCANTISSIMO 45 G QUEIJO PARMESAO GRATINADO','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('14062','7896002369749','','BISCOITO CROCANTISSIMO 45 G QUEIJO SUICO C/ ERVAS FINAS','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('16277','7896002309325','','BISCOITO CROCANTISSIMO 45 G SALSICHA MOLHO MOSTARDA','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('9422','7896002364799','','BISCOITO CROCANTISSIMO 45 G TOMATE MANJERICAO E AZEITE','BISC CROCANTISSIMO','0,000','19053100','0','0,00','A C MAGALHAES','07.566.652/0001-37'),('9358','7896002305860','','BOLO PLUS VITA 250 G ABACAXI','BOLO PLUS VITA','0,000','19059090','60','0,00','1','1','A C MAGALHAES','07.566.652/0001-37'),('9357','7896002305846','','BOLO PLUS VITA 250 G CHOCOLATE','BOLO PLUS VITA','0,000','19059090','60','0,00','1','1','A C MAGALHAES','07.566.652/0001-37'),('9356','7896002306768','','BOLO PLUS VITA 250 G GOTAS CHOCOLATE','BOLO PLUS VITA','0,000','19059090','60','0,00','1','1','A C MAGALHAES','07.566.652/0001-37'),('9359','7896002305877','','BOLO PLUS VITA 250 G LARANJA','BOLO PLUS VITA','0,000','19059090','60','0,00','1','1','A C MAGALHAES','07.566.652/0001-37'),('14355','7896002365536','','BOLO PLUS VITA 250 G MILHO','BOLO PLUS VITA','0,000','19021900','60','0,00','1','1','A C MAGALHAES','07.566.652/0001-37')

Mensagens do MySQL : dot.gif

#1136 - Column count doesn't match value count at row 8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reveja a SQL com cuidado. O erro diz que o número de campos não corresponde ao número de valores. Por exemplo:

 

 

INSERT INTO tabela(campo1) VALUES ('valor1', 'valor2');

 

Veja que só defini um campo, mas tento inserir dois valores

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era isso mesmo Beraldo.

 

Fiz em conjunto com o co uma versão final, segue abaixo:

 

Obviamente q tem mais foreach nisso do que sei lá oq mas ta valendo shuasuhasa

antes vários for do que vários inserts individuas :huh:

<?php

//Necessario Mudar o "arquivo.txt" para o nome do arquivo.txt
$handle = @fopen("arquivo.txt", "r");

$produtos = array();


$headers = array(
 'Cod_Sub_Item'
,'Cod_EAN'
,'Cod_Referencia'
,'Descricao_Completa'
,'Descricao_ECF'
,'IPI'
,'NCM'
,'CST_ICMS'
,'Aliquota_ICMS'
,'CST_PIS'
,'CST_COFINS'
,'Fornecedor'
);


if ($handle) {
	
	while (($buffer = fgets($handle, 4096)) !== false) {
		$linha = trim($buffer);
		if($linha == '[Produtos]') continue;
		
		list($chave, $valor) = explode('=', $linha);
		
		$n = preg_replace("/[^0-9\s]/", "", $chave);
		$chave = preg_replace("/[0-9\s]/", "", $chave);
		
		$produtos[$n][$chave] = $valor;
	}
    
	if (!feof($handle)) {
        echo "Erro: falha inexperada de fgets()\n";
    }
    fclose($handle);
}

foreach($produtos as $key => $val){
	if(count($produtos[$key]) != 13){
		
		foreach($headers as $header){
			if(!array_key_exists($header, $produtos[$key])){
				$produtos[$key][$header] = ''; // Faz dar match --  #1136 - Column count doesn't match value count at row 8
			}
		}
	}
}

$keys = array();

$sql = "INSERT INTO stb (";


foreach($produtos as $produto){
	foreach($produto as $key => $val){
		$keys[] = $key;
	}
	$sql .= implode(',', $keys) . ') VALUES ';
	break;
}

foreach($produtos as $produto){
	$valores = array();
	$count = 0;
	foreach($produto as $key => $val){
		$val = str_replace("'", '', $val);
		$valores[] = "'$val'";
		$count++;
	}
	
	$sql .= '(' . implode(',', $valores) . '),';
	
}

$sql = substr($sql, 0, -1);
echo $sql;

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Fernando Rafael
      Boa tarde, estou com um problema ao tentar usar o CMD para imprimir o conteúdo de um arquivo TXT, estou usando o comando:
       
      PRINT /d:"\\cxgeral\Brother HL-1210W series" "imprimir.txt"  
      A impressora responde e faz o processo de impressão, porém a página sai em branco, usando este mesmo comando em uma impressora de pedido (Daruma DR800, Epson T20X, Elgin i9) funciona normalmente. mas em uma impressora comum fica em branco, sei que as impressoras na qual deram certo permitem impressão escrevendo direto na porta na qual estão instaladas. Mas a minha "Brother Hl-1210W" é uma impressora laser A4.
       
      Agradeço pela atenção.
       
       
      visite: www.sisnorg.com
    • Por Gilberto Jr
      Olá, boa tarde.
      Tudo bem?
       
      Preciso de uma ajuda aqui.
       
      Seguinte, através desse código eu consigo ler as informações que esta dentro do arquivo txt.
      <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>FileAPI HTML5</title> <style type="text/css"> #filecontents { border: double; overflow-y: scroll; height: 400px; } </style> </head> <body> Por favor selecione arquivo que será lido:<br /> <input type="file" id="txtfiletoread" /><br /> <div>Conteúdo do arquivo:</div> <div id="filecontents"> </div> <script> window.onload = function () { //Check the support for the File API support if (window.File && window.FileReader && window.FileList && window.Blob) { var fileSelected = document.getElementById('txtfiletoread'); fileSelected.addEventListener('change', function (e) { //Set the extension for the file var fileExtension = /text.*/; //Get the file object var fileTobeRead = fileSelected.files[0]; //Check of the extension match if (fileTobeRead.type.match(fileExtension)) { //Initialize the FileReader object to read the 2file var fileReader = new FileReader(); fileReader.onload = function (e) { var pontovirgula = ";"; var virgula = ","; var fileContents = document.getElementById('filecontents'); fileContents.innerText = fileReader.result.replace(virgula, pontovirgula).replace(virgula, pontovirgula); } fileReader.readAsText(fileTobeRead); } else { alert("Por favor selecione arquivo texto"); } }, false); } else { alert("Arquivo(s) não suportado(s)"); } } </script> </body> </html> So que o arquivo vem separado por virgulas. Eu quero substituir todas as virgulas por ponto e virgula. Se eu usar dessa forma, ele altera a virgula para ponto e virgula da primeira linha.
      <script> window.onload = function () { //Check the support for the File API support if (window.File && window.FileReader && window.FileList && window.Blob) { var fileSelected = document.getElementById('txtfiletoread'); fileSelected.addEventListener('change', function (e) { //Set the extension for the file var fileExtension = /text.*/; //Get the file object var fileTobeRead = fileSelected.files[0]; //Check of the extension match if (fileTobeRead.type.match(fileExtension)) { //Initialize the FileReader object to read the 2file var fileReader = new FileReader(); fileReader.onload = function (e) { var pontovirgula = ";"; var virgula = ","; var fileContents = document.getElementById('filecontents'); fileContents.innerText = fileReader.result.replace(virgula, pontovirgula).replace(virgula, pontovirgula); } fileReader.readAsText(fileTobeRead); } else { alert("Por favor selecione arquivo texto"); } }, false); } else { alert("Arquivo(s) não suportado(s)"); } } </script> 7909377852089;1;8380 7909377852133,1,8380 7909377820729,2,8380 7909377820736,2,8380 7909377820743,2,8380 E também, o ultimo valor eu preciso separar os centavos por , virgula.
       
      Arquivo deve ficar dessa forma quando mostrado na pagina.
       
      7909377852089;1;83,80
      7909377852133;1;83,80
      7909377820729;2;83,80
      7909377820736;2;83,80
      7909377820743;2;83,80
       
      Ou seja, contando da direita para esquerda, as duas primeiras posições é o centavos.
       
      Se alguém puder me ajudar, ficarei muito grato.
       
      Att;
      Gilberto Jr
    • Por pandinha_000
      Olá,
      Estou desenvolvendo um código em c++ utilizando manipulação de arquivos .txt (não por ponteiros), e gostaria de saber como fazer para que o algoritmo "pule" a primeira linha em branco do meu arquivo e passe já para a próxima, com dados válidos (na leitura). A propósito, existe a possibilidade de, ao escrever no arquivo, essa primeira linha em branco não exista?
      Desde já agradeço.
    • Por opl12
      Olá Mestres!
       
      Tem alguma forma de importar a base de dados para o banco phpMyAdmin de forma automática?
       
      hoje utilizo cuma conexão com o SAP HANA, porém um simples SELECT leva mais de 30 segundos(são bases grandes).. após esse tempo o PHP dá timeout, e mesmo se não desse, a busca dos dados está bem demorada. 
       
      Se puderem dar uma dica agradeço.
      vlew!
       
       
    • Por Daniel Tenorio
      Saudações amigos,
      Minha tabela possui um campo numérico “peso”
      Preciso ler um arquivo txt que está na minha máquina e que contém apenas uma linha com o peso no formato “999999”. Preciso atribuir esse valor no campo do formulário.
      Um detalhe, eu preciso que funcione sem ação do usuário para selecionar o arquivo na pasta, ou seja, que o valor seja atribuído automaticamente ao campo, porém para isso, eu preciso colocar dentro do código (em uma variável) o caminho do arquivo. Ou ao menos se alguém conseguir fazer que funcione com um botão ao lado do campo com a ação do usuário apenas para clicar no botão retornando o valor do txt ao campo já ajudaria muito.
      Consegui fazer o código em anexo funcionar, porém gostaria do preenchimento automático do campo.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.