Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Antoliv

Efetuar Upload Multiplo de CONTEUDO XML .....?

Recommended Posts

Beraldo, aparece o conteúdo inteiro do xml, mas não insere no banco.

Interessante que na primeira linha da tela, aparece

 

 

isso aqui:

 

 

string(23880) "INSERT INTO tb_xml(numeroGuiaPrestador, dataSolicitacao, codigoProcedimento, descricaoProcedimento, codigoTabela, nome_xml, fk_usuario_sessao, data_cadastro)60000000009,0000-00-00,('40000001'),......................................

 

 

o que tu acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhe seu problema aí:

 

 

)60000000009,0000

 

Erro de sintaxe.

 

O comando INSERT é:

 

 

INSERT INTO tabela(campos) VALUES(valores);

 

Sua SQL não tem o VALUES e nem os parênteses entre os valores de cada linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falaee....Beraldoo....!!!!

Bom diaa!!

Entãoo...

 

É o que não estou sabendo fazer. Porque ficuei pensando, como vou inserir valores se não passo as váriáveis para o VALUE?

 

Só que é aí que mora a minha dificuldade. Já tentei passar diversos valores.

Tipo

 

 

VALUES(".$value[0].");

 

mas não obtive sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei algo assim:

 

$sql = "INSERT INTO tb_xml(numeroGuiaPrestador, dataSolicitacao, codigoProcedimento, descricaoProcedimento, codigoTabela, nome_xml, fk_usuario_sessao, data_cadastro)VALUES('".$values[0]."', '".$values[1]."')";

 

 

o resultado na tela é o conteúdo do xml.

Sendo que a primeira linha aparece assim, depois de ter acrescentado o VALUE:

 

string(23895) "INSERT INTO tb_xml (numeroGuiaPrestador, dataSolicitacao, codigoProcedimento, descricaoProcedimento, codigoTabela, nome_xml, fk_usuario_sessao, data_cadastro)VALUES('', '')

 

 

 

O que tu acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 24/10/2015 at 11:18, Carlos Antoliv disse:

Sendo que a primeira linha aparece assim, depois de ter acrescentado o VALUE:

 

string(23895) "INSERT INTO tb_xml (numeroGuiaPrestador, dataSolicitacao, codigoProcedimento, descricaoProcedimento, codigoTabela, nome_xml, fk_usuario_sessao, data_cadastro)VALUES('', '')

Se apareceu "VALUES('', '')", quer dizer que seu loop só gerou 2 valores, ambos vazios

 

E agora já não entendi mais nada, pois antes aparecia "60000000009,0000" e agora vem valor vazio...

 

Vá com calma.

Um passo de cada vez.

Eu falei pra você montar a consulta manualmente. Veja a estrutura dela primeiro, quais campos serão preenchidos etc. Depois faça com que ela seja gerada pelo loop.

 

Não adianta testar tudo quanto é coisa e esperar que uma hora dê certo. Esse é o Teorema do Macaco Infinito. Pode funcionar, mas pode levar muito tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo..

BOM..

seguinte, se eu tirar o INSERT que fica antes desta linha:

 

"foreach ($xml->prestadorParaOperadora->loteGuias->guiasTISS->{'guiaSP-SADT'} as $value ) {"

 

 

E colocá-lo aqui:

 

$sql .= implode(',', $values);
var_dump($sql)."<br>";

$sql = "INSERT INTO tb_xml (numeroGuiaPrestador, dataSolicitacao)VALUES(".$values[0].", ".$values[1].")";

 

mysql_query($sql) or exit(mysql_error());

 

INSERE no banco apenas a primeira linha.

 

Mas quando coloco lá ante do foreach, dá este erro, que aparece no final da exibição do xml:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' )('6290107308'),('2015-09-27'),('40304361'),('Hemograma sangue total'),('22'),(' at line 1

 

e logo no começo da exibição, aparece assim:

tring(22688) "INSERT INTO tb_xml (numeroGuiaPrestador, dataSolicitacao)VALUES(, )('

 

Eu já nao sei como proceder...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe algo no teu codigo que não estou conseguindo entender.

 

seguinte o codigo que está na postagem:

#4 icon_share.png Beraldo

 

.....

 

o insert teria que está no foreach, não? Se você falar que não, então como é feito o insert dos VALUES uma vez que eles não estão setados. Dentro do teu códido pensei que as variáveis $values poderiam ficar dentro do VALUES..

 

fiz um teste que funcionou. Acho que alcancei o resultado desejado. Mas não tinha muito a ver com o que tu disse.

Vou realizar vários testes. Assim que eu tiver a certeza, posto o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu adicionei os valores no array $values. Esse array gerou os valores na SQL, usando implode()

É a ideia que mostro neste artigo

 

Você até pode fazer o INSERT dentro do loop. Vai funcionar, mas vai ficar super lento o script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummmm.....

pensei nisso também..

 

Tava tentando fazer da maneira que vc colocou no post #4.

Mas não está funcionando.

 

Vou dá uma lida no artigo que vc disponibilizou.

 

Vou realizar mais testes e já posto o tópico como resolvido.

 

abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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