Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3
Sexo: Masculino

Ler .txt E Gravar No Banco Informações

02-08-2013 08:46

Bom dia!
Estou lendo um arquivo .txt para atualizar no banco de dados algumas informações como estoque e preço até ai tudo bem o problema, consigo pegar exatamente os campos que preciso porém na hora de atualizar no banco não está funcionando, está granvado tudo zerado, segue abaixo o código.

file.txt
1       AMITRAZ 10ML                              603,00      0,00        0,00      1,94      INDUBRAS                  INDUBRAS

arquivo.php
        $c=0;         $a=0;         while (!feof ($ponteiro)) {             $c++;             $linha   = fgets($ponteiro, 4096);             $linha   = str_replace(" ","-",$linha);             $id      = str_replace("-","",substr($linha, 0, 16));             $estoque = str_replace("-","",str_replace(",",".",str_replace(".","",substr($linha, 100, 24))));             $preco   = str_replace("-","",str_replace(",",".",str_replace(".","",substr($linha, 168, 20))));             $dv = explode(".",$estoque);             $estoque = $dv[0];             if($c>1){                 $v = mysql_query("SELECT * FROM produtos WHERE ref='".$id."'");                 echo "SELECT * FROM produtos WHERE ref='".$id."' ----- ".mysql_num_rows($v).'<br />';                                  mysql_query("INSERT INTO historico_banco (ref, preco, estoque) VALUES ('".$id."', '".$preco."', '".$estoque."')");                 echo $id." - ".$preco." - ".$estoque;                 echo " ------ INSERT INTO historico_banco (ref, preco, estoque) VALUES ('".$id."', '".$preco."', '".$estoque."')<br /><br />";                 if(mysql_num_rows($v)>0){                     $at = mysql_query("UPDATE produtos SET valor='".$preco."', estoque='".$estoque."' WHERE ref='".$id."'");                     echo "UPDATE produtos SET valor='".$preco."', estoque='".$estoque."' WHERE ref='".$id."'<br /><br />";                     if($at){                         $a++;                     }                 }             }         }         fclose ($ponteiro);

No código php eu pulo a primeira linha pois não me interessa, quando escrevo na tela as informações estão apresentando corretamente mas na hora de inserir no banco o registro é feito porém as informação ficam zeradas como no exemplo abaixo.

ref     preco   estoque 0       0.00    0

Se alguém conseguir me ajudar agradeceria muito.
Att
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ler .txt E Gravar No Banco Informações

02-08-2013 16:21

Saberia qual a query exatamente que está zerando os valores? Tem duas, uma quando $c > 1 e outra quando $v > 0

Observe também o tipo de campo do banco de dados. Por exemplo, se o campo for int, não vai aceitar ponto.

Testa também dar um echo no lugar do INSERT, para conferir se todos os valores que serão incluídos estão sendo chamados corretamente.
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3
Sexo: Masculino

Ler .txt E Gravar No Banco Informações

02-08-2013 16:41

Boa tarde Amigo, obrigado pelo retorno.
Tentei usar (float), (int) antes da variável porém quando utilizo desta forma o valor fica como "0" o engraçado é que se pegarmos o resultado printado na tela do echo inserto historico_banco e colar diretamente no sql do banco ele insere perfeitamente.

Percebi que se usamos addslashes($id) para adicionar no banco ele retorna conforme exemplo abaixo.

SELECT * FROM produtos WHERE ref='\06\03\0\0\0\0\0\0'

No lugar do ref='63' foi printado na tela ref='\06\03\0\0\0\0\0\0' como se estivesse algo mascarado na variável.

Att
0
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 3
Sexo: Masculino

Ler .txt E Gravar No Banco Informações

02-08-2013 16:47

Consegui fazer rodar, para limpar o id utilizei ref='".str_replace('\0','',addslashes(trim($id)))."' e funcinou perfeitamente.
Resolvido!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Ler .txt E Gravar No Banco Informações

02-08-2013 17:06

Blz.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]