Ir para conteúdo
Fórum Script Brasil
  • 0

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


carlosantoliv

Pergunta

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 para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...