- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Importare dati da XML a db Mysql
-
Importare dati da XML a db Mysql
Salve ragazzi, premetto che non sono un programmatore.
La mia stazione meteo genera un file xml contenente tutti i dati in tempo reale (temperatura, umidità, ecc.), questo viene caricato ogni minuto sulla mia pagina web (max299.netsons.org/dati/wdfulldata.xml).
Io vorrei prendere ad esempio le info su temperatura e umidità e caricarle su un db mysql con un intervallo di 5 minuti, ossia ogni 5 min. Vengono caricati sul db le info su temp. e umidità.
Sapete come posso fare?
Come potete vedere sulla home page max299.netsons.org/ sono riuscito a prendere quei dati e visualizzarli sulla tabella con simplexml, ma non so proprio come fare per archiviarli sul db.
Grazie ancora
-
Qualche idea?
-
Ciao,
io ho testato un sistema che ora ti riporto.
Il mio xml di partenza è fatto come segue
[HTML]
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2012-07-17T12:34:02">
<utenti>
<NOME>AAA</NOME>
<COGNOME>aaa</COGNOME>
<INDIRIZZO>Via di aaa, 11</INDIRIZZO>
<MAIL>[email protected]</MAIL>
<TELEFONO>0123456</TELEFONO>
</utenti>
<utenti>
<NOME>BBB</NOME>
<COGNOME>bbb</COGNOME>
<INDIRIZZO>Via bbb, 22</INDIRIZZO>
<MAIL>[email protected]</MAIL>
<TELEFONO>6543210</TELEFONO>
</utenti>
<utenti>
<NOME>CCC</NOME>
<COGNOME>ccc</COGNOME>
<INDIRIZZO>Via ccc, 33</INDIRIZZO>
<MAIL>[email protected]</MAIL>
<TELEFONO>112233</TELEFONO>
</utenti>
</dataroot>
[/HTML]Form iniziale:
[PHP]<html>
<head>
<title>Upload ed importazione XML</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="importa_xml.php">
File XML: <input type="file" name="filexml" value="" />
<input type="submit" name="" value="Upload" />
</form>
</body>
</html>
[/PHP]File importa_xml.php:
[PHP]
<?php
// Apro la connessione al DB
require_once 'config.inc.php';
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or
die ('Unable to connect. Check your connection parameters.');
mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));// Recupero il file
$file = $_FILES['filexml'];// Controllo che il file sia stato inserito
if ( $file['tmp_name'] != '' ) {
// Carica il file in una variabile $xml
$xml = simplexml_load_file( $file['tmp_name'] );// Controllo tutti i tag "utenti" foreach( $xml->utenti as $value ) { // Recupero tutti i campi da ogni tag "utenti" $nome = $value->NOME; $cognome = $value->COGNOME; $indirizzo = $value->INDIRIZZO; $mail = $value->MAIL; $telefono = $value->TELEFONO; // Creo una query di inserimento e la eseguo $sql = " INSERT INTO utenti SET nome = '$nome', cognome = '$cognome', indirizzo = '$indirizzo', mail = '$mail', telefono = '$telefono' "; $rssql = mysql_query( $sql ); // Controllo che l'importazione sia avvenuta con successo echo ( $rssql ) ? "Importazione avvenuta con successo" : "Errore nella query o connessione al DB mancante"; }
}
else
echo "Nessun file inserito";
[/PHP]