Jump to content
Fórum Script Brasil
  • 0

Como realizar Upload de conteúdo de XML no Banco de Dados....?


carlosantoliv
 Share

Question

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="xml_importar.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');
       
               /**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>";
 
        if (isset($_POST['enviar_xml'])) {          
             if (is_uploaded_file($_FILES['upl']['tmp_name'])) {
 
      $xml = simplexml_load_file($_FILES['upl']['tmp_name']); /* Lê o arquivo XML e recebe um objeto com as informações */            
  }}
  
$x = 0; //contador  
foreach ($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ç!

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...