Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 25-06-08, 18:34   #16 (permalink)
Esperto
 
L'avatar di Sups
 
Data di registrazione: May 2007
Ubicazione: Pesaro
Messaggi: 568
Ho creato un semplice script che legge un file XML e crea le query SQL per l'inserimento dei dati nel DB.

Codice XML

Codice:
<?xml version="1.0"?>
<database>
    <utente>
        <nome>Andrea</nome>
        <user>Sups</user>
        <anno_nascita>1985</anno_nascita>
    </utente>
    <utente>
        <nome>Mario</nome>
        <cognome>De Rossi</cognome>
        <residenza>Italia</residenza>
    </utente>
</database>
Per come è concepito il codice:
<utente> = Nome della tabella
<nome>, <cognome>, ecc... = Nome dei campi della tabella
Andrea, Mario, ecc... = Valori da inserire nella tabella

Il codice è questo:

Codice PHP:
<?php
    $xml_path 
"file.xml";
    
    
$i 0;
    
$query "";
    
    
$dom = new DOMDocument();
    
    
$dom -> preserveWhiteSpace false;
    
    @
$dom -> load($xml_path)
        or die(
"File XML non valido!");
        
    
$root $dom -> documentElement;
    
    if(@
$root -> hasChildNodes())
    {
        
xmltree($root0);
        
        echo 
$query;
    }
    
    function 
xmltree($nodo$p)
    {
        
$p++;
        
        
$figli $nodo -> childNodes;
        
        foreach(
$figli as $figlio)
        {
            if(
substr($figlio -> nodeName01) != "#")
            {
                
// <utente> = Nome della tabella
                
if($p == 1)
                {
                    
$GLOBALS['query'] .= "<br>INSERT INTO " $figlio -> nodeName " SET ";
                    
$GLOBALS['i'] = 0;
                }
                else
                {
                    if(
$GLOBALS['i'] == 1)
                    {
                        
$GLOBALS['query'] .= ", " $figlio -> nodeName " = '";
                    }
                    else
                    {
                        
$GLOBALS['query'] .= $figlio -> nodeName " = '";
                        
$GLOBALS['i'] = 1;
                    }
                }
            }
            
            
// Valori dei nodi
            
if($figlio -> hasChildNodes())
            {
                
xmltree($figlio$p);
            }
            else
            {
                
$GLOBALS['query'] .= $figlio -> nodeValue "'";
            }
        }
    }
?>
Ciao!
__________________
Now is the time for all good men to come to the aid of their country!
Sups non in linea   Rispondi citando
Vecchio 25-06-08, 19:57   #17 (permalink)
User
 
Data di registrazione: Nov 2007
Ubicazione: web/htdocs
Messaggi: 35
Grazie 1000 Sups!
Ho fatto delle prove e ora riesco con il tuo script a popolare una tabella in mysql partendo da un file xml.

non riesco però ad eseguire gli aggiornamenti.
essendo il file xml un elenco di articoli, devo aggiornarlo spesso per poter per es modificare le quantità disponibili.

puoi aiutarmi?
Sark non in linea   Rispondi citando
Vecchio 25-06-08, 20:14   #18 (permalink)
Esperto
 
L'avatar di Sups
 
Data di registrazione: May 2007
Ubicazione: Pesaro
Messaggi: 568
Quote:
Sark Visualizza il messaggio
non riesco però ad eseguire gli aggiornamenti.
essendo il file xml un elenco di articoli, devo aggiornarlo spesso per poter per es modificare le quantità disponibili.
Non ti posso rispondere perchè non conosco il tipo di relazione tra XML e l'articolo, cioè com'è strutturato quest'ultimo all'interno del file XML e come deve essere rappresentato nel DB.
Però potresti sostituire INSERT INTO con UPDATE, la query SQL che permette l'aggiornamento di righe già esistenti.
__________________
Now is the time for all good men to come to the aid of their country!
Sups non in linea   Rispondi citando
Vecchio 19-07-11, 22:07   #19 (permalink)
User
 
Data di registrazione: Feb 2010
Ubicazione: napoli
Messaggi: 17
Salve,
ho trovato lo script su internet, mi serve ma vorrei modificare una cosa... in pratica mi serve che il file xml non sia sul server dove è stato avviato lo script, ma su un altro server, come faccio a richiamarlo???
__________________
www.comingweb.it
Fabyo88 non in linea   Rispondi citando
Vecchio 22-11-11, 14:45   #20 (permalink)
User
 
Data di registrazione: Oct 2006
Ubicazione: Udine
Messaggi: 74
Grazie Sups|
Script molto utile!!!
Perfetto anche per il file xml remoto!!!!!
__________________
Jwebcode - BikerPub
medmax non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:20.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.