Como realizar Upload de conteúdo de XML no Banco de Dados....?
Senhores, consigo realizar o upload do conteúdo de um arquivo XML para o banco de dados MySQL. Mas apenas um arquivo por vez. O que eu queria é que fossem vários arquivos. Já tentei criar array, variáveis... mas ainda não consegui. Consegui criar os scripts abaixo: <!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor. -->
<html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="importar_xml.php" method="POST" enctype="multipart/form-data"> <input type="file" name="upl" multiple style="font-size:80px" /> <input type="submit" name="enviar_xml" value="Enviar" /> </form> </body>
</html> xml_importar.php <?php set_time_limit(3600). //1 hora pra dar timeout / Conectar com o banco de dados da aplicação /mysql_connect('localhost', 'root', 'senha') or die('Erro ao conectar'). mysql_select_db("nome_banco"). //****************************************************************************ini_set('default_charset', 'UTF-8'). if (isset($_POST['enviar_xml'])) { if (is_uploaded_file($_FILES['upl']['tmp_name'])) { /**A linha abaixo mostra o nome do aquivo que foi selecionado**/ echo "<h1>". "Arquivo XML: ". $_FILES['upl']['name']." Selecionado com Sucesso!.". "</h1>". echo "<h2>Exibindo Fichas:</h2>". /** LER XML A PARTIR DO INPUT TYPE=FILE * Esta linha simplexml_load_files ler o xml que é selecionado * a partir do campo do input type=file, que tem o nome de filename. **/ $xml = simplexml_load_file($_FILES['upl']['tmp_name']). /* Lê o arquivo XML e recebe um objeto com as informações */ }} $x = 0. //contadorforeach ($xml->tag1->tag2->tag3->{'nome-nome2'} as $valor){ / Percorre o objeto e salva as informações no banco de dados /
mysql_query("INSERT INTO nome_tabela(tag1, tag2, tag3, tag4, tag5) VALUES (".$valor->tag5->tag6.",
'".$valor->tag7->tag8."',
".$valor->tag9->tag10->tag11->tag12.",
'".$valor->tag9->tag10->tag11->tag13."',
".$valor->tag9->tag10->tag11->tag14.")"). if(mysql_affected_rows()!= -1){ $x++. } }
echo "$x contatos importados com sucesso!".?> //**************************************************************************************************************************************** O que preciso é selecionar vários XMLs e salvar no banco. Hoje, consigo, sim, selecionar vários, mas somente 1(um) XML é gravado no banco. Senhores, se puderem, dá uma ajudinha ae... abç!Discussão (28)
Carregando comentários...