Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

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

$
0
0

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; //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ç!


Viewing all articles
Browse latest Browse all 14190

Trending Articles