Allora per non fare confusione partiamo dal primo obbiettivo
Caricare i dati dai file xml al database mysql poi vedremo il resto
Caricare i dati dai file xml al database mysql poi vedremo il resto
<report>
<location city="Abriola [Potenza;Italia]">
<interesting>
<url description="predizione">http://</url>
</interesting>
<var>
<name>Temperatura minima</name>
<icon>4</icon>
<data>
<forecast data_sequence="1" gradi="-2"/>
<forecast data_sequence="2" gradi="-3"/>
<forecast data_sequence="3" gradi="-6"/>
<forecast data_sequence="4" gradi="-7"/>
<forecast data_sequence="5" gradi="-8"/>
<forecast data_sequence="6" gradi="0"/>
<forecast data_sequence="7" gradi="-4"/>
</data>
</var>
<var>
<name>Temperatura massima</name>
<icon>5</icon>
<data>
<forecast data_sequence="1" gradi="7"/>
<forecast data_sequence="2" gradi="2"/>
<forecast data_sequence="3" gradi="2"/>
<forecast data_sequence="4" gradi="0"/>
<forecast data_sequence="5" gradi="4"/>
<forecast data_sequence="6" gradi="7"/>
<forecast data_sequence="7" gradi="4"/>
</data>
</var>
<var>
<name>Vento</name>
<icon>9</icon>
<data>
<forecast data_sequence="1" simbolo="7" desc="Vento debile dal ovest"/>
<forecast data_sequence="2" simbolo="9" desc="Vento moderato dal nord"/>
<forecast data_sequence="3" simbolo="6" desc="Vento debile da sud-ovest"/>
<forecast data_sequence="4" simbolo="9" desc="Vento moderato dal nord"/>
<forecast data_sequence="5" simbolo="13" desc="Vento moderato dal sud"/>
<forecast data_sequence="6" simbolo="13" desc="Vento moderato dal sud"/>
<forecast data_sequence="7" simbolo="5" desc="Vento debole dal sud"/>
</data>
</var>
<var>
<name>Simbolo</name>
<icon>10</icon>
<data>
<forecast data_sequence="1" simbolo="18" desc="Cielo nuvoloso con intemperie nevose"/>
<forecast data_sequence="2" simbolo="19" desc="Cielo coperto con intemperie nevose"/>
<forecast data_sequence="3" simbolo="19" desc="Cielo coperto con intemperie nevose"/>
<forecast data_sequence="4" simbolo="18" desc="Cielo nuvoloso con intemperie nevose"/>
<forecast data_sequence="5" simbolo="3" desc="Nubi sparse"/>
<forecast data_sequence="6" simbolo="7" desc="Cielo coperto con pioggia debole"/>
<forecast data_sequence="7" simbolo="18" desc="Cielo nuvoloso con intemperie nevose"/>
</data>
</var>
<var>
<name>Giorno</name>
<icon>15</icon>
<data>
<forecast data_sequence="1" desc="Giovedi"/>
<forecast data_sequence="2" desc="Venerdì"/>
<forecast data_sequence="3" desc="Sabato"/>
<forecast data_sequence="4" desc="Domenica"/>
<forecast data_sequence="5" desc="Lunedi"/>
<forecast data_sequence="6" desc="Martedì"/>
<forecast data_sequence="7" desc="Mercoledì"/>
</data>
</var>
<var>
<name>Definizione di Atmosphere</name>
<icon>19</icon>
</var>
</location>
</report>
Imposta il file XML in questo modo e poi ti posto il codice per inserire i dati ne db ch e simile a quello precedente.
PHP:<report> <location city="Abriola [Potenza;Italia]"> <interesting> <url description="predizione">http://</url> </interesting> <var> <name>Temperatura minima</name> <icon>4</icon> <data> <forecast data_sequence="1" gradi="-2"/> <forecast data_sequence="2" gradi="-3"/> <forecast data_sequence="3" gradi="-6"/> <forecast data_sequence="4" gradi="-7"/> <forecast data_sequence="5" gradi="-8"/> <forecast data_sequence="6" gradi="0"/> <forecast data_sequence="7" gradi="-4"/> </data> </var> <var> <name>Temperatura massima</name> <icon>5</icon> <data> <forecast data_sequence="1" gradi="7"/> <forecast data_sequence="2" gradi="2"/> <forecast data_sequence="3" gradi="2"/> <forecast data_sequence="4" gradi="0"/> <forecast data_sequence="5" gradi="4"/> <forecast data_sequence="6" gradi="7"/> <forecast data_sequence="7" gradi="4"/> </data> </var> <var> <name>Vento</name> <icon>9</icon> <data> <forecast data_sequence="1" simbolo="7" desc="Vento debile dal ovest"/> <forecast data_sequence="2" simbolo="9" desc="Vento moderato dal nord"/> <forecast data_sequence="3" simbolo="6" desc="Vento debile da sud-ovest"/> <forecast data_sequence="4" simbolo="9" desc="Vento moderato dal nord"/> <forecast data_sequence="5" simbolo="13" desc="Vento moderato dal sud"/> <forecast data_sequence="6" simbolo="13" desc="Vento moderato dal sud"/> <forecast data_sequence="7" simbolo="5" desc="Vento debole dal sud"/> </data> </var> <var> <name>Simbolo</name> <icon>10</icon> <data> <forecast data_sequence="1" simbolo="18" desc="Cielo nuvoloso con intemperie nevose"/> <forecast data_sequence="2" simbolo="19" desc="Cielo coperto con intemperie nevose"/> <forecast data_sequence="3" simbolo="19" desc="Cielo coperto con intemperie nevose"/> <forecast data_sequence="4" simbolo="18" desc="Cielo nuvoloso con intemperie nevose"/> <forecast data_sequence="5" simbolo="3" desc="Nubi sparse"/> <forecast data_sequence="6" simbolo="7" desc="Cielo coperto con pioggia debole"/> <forecast data_sequence="7" simbolo="18" desc="Cielo nuvoloso con intemperie nevose"/> </data> </var> <var> <name>Giorno</name> <icon>15</icon> <data> <forecast data_sequence="1" desc="Giovedi"/> <forecast data_sequence="2" desc="Venerdì"/> <forecast data_sequence="3" desc="Sabato"/> <forecast data_sequence="4" desc="Domenica"/> <forecast data_sequence="5" desc="Lunedi"/> <forecast data_sequence="6" desc="Martedì"/> <forecast data_sequence="7" desc="Mercoledì"/> </data> </var> <var> <name>Definizione di Atmosphere</name> <icon>19</icon> </var> </location> </report>
Sarebbe stato meglio cmq adesso vedo di fare combaciare le cose...
/* Script per inserire i valore nel DB */
$xml = simplexml_load_file( 'percorso/file.xml' );
$city = $xml->location->attributes()->city;
$var = $xml->location->var;
mysql_connect();
mysql_select_db();
$query = 'INSERT INTO location ( location ) VALUES ( "'.$city.'" )';
$result = mysql_query($query);
$query = 'SELECT ID FROM location WHERE location="'.$city.'"';
$result = mysql_query($query);
$obj = mysql_fetch_object($result);
$id = $obj -> ID;
mysql_close();
mysql_free_result($result);
foreach ( $var as $value ) {
$name = $value->name;
$icon = $value->icon;
$data = $value->data;
$data_sequence = '';
$simbolo = '';
$gradi = '';
$desc = '';
foreach ( $data as $value ) {
$data_sequence .= $value->forecast[0]->attributes()->data_sequence.'::';
$data_sequence .= $value->forecast[1]->attributes()->data_sequence.'::';
$data_sequence .= $value->forecast[2]->attributes()->data_sequence.'::';
$data_sequence .= $value->forecast[3]->attributes()->data_sequence.'::';
$data_sequence .= $value->forecast[4]->attributes()->data_sequence.'::';
$data_sequence .= $value->forecast[5]->attributes()->data_sequence.'::';
$data_sequence .= $value->forecast[6]->attributes()->data_sequence;
$simbolo .= $value->forecast[0]->attributes()->$id.'::';
$simbolo .= $value->forecast[1]->attributes()->$id.'::';
$simbolo .= $value->forecast[2]->attributes()->$id.'::';
$simbolo .= $value->forecast[3]->attributes()->$id.'::';
$simbolo .= $value->forecast[4]->attributes()->$id.'::';
$simbolo .= $value->forecast[5]->attributes()->$id.'::';
$simbolo .= $value->forecast[6]->attributes()->$id;
if( $name == 'Temperatura minima' || $name == 'Temperatura massima' ){
$gradi .= $value->forecast[0]->attributes()->$value.'::';
$gradi .= $value->forecast[1]->attributes()->$value.'::';
$gradi .= $value->forecast[2]->attributes()->$value.'::';
$gradi .= $value->forecast[3]->attributes()->$value.'::';
$gradi .= $value->forecast[4]->attributes()->$value.'::';
$gradi .= $value->forecast[5]->attributes()->$value.'::';
$gradi .= $value->forecast[6]->attributes()->$value;
}else{
$desc .= $value->forecast[0]->attributes()->$value.'::';
$desc .= $value->forecast[1]->attributes()->$value.'::';
$desc .= $value->forecast[2]->attributes()->$value.'::';
$desc .= $value->forecast[3]->attributes()->$value.'::';
$desc .= $value->forecast[4]->attributes()->$value.'::';
$desc .= $value->forecast[5]->attributes()->$value.'::';
$desc .= $value->forecast[6]->attributes()->$value;
}
}
mysql_connect();
mysql_select_db();
$query = 'INSERT INTO metalocation ( location, nome, icon, data, gradi, simbolo, description ) VALUES ( "'.$id.'", "'.$name.'", "'.$icon.'", "'.$data_sequence.'", "'.$gradi.'", "'.$simbolo.'", "'.$desc.'" )';
$result = mysql_query($query);
mysql_close();
mysql_free_result($result);
}
Cmq in poche parole l' id e il simbolo ed solo il value che cambia. Ho inserito tutto il codice originale con Icon e Simbolo dovrebbe andare.
PHP:/* Script per inserire i valore nel DB */ $xml = simplexml_load_file( 'percorso/file.xml' ); $city = $xml->location->attributes()->city; $var = $xml->location->var; mysql_connect(); mysql_select_db(); $query = 'INSERT INTO location ( location ) VALUES ( "'.$city.'" )'; $result = mysql_query($query); $query = 'SELECT ID FROM location WHERE location="'.$city.'"'; $result = mysql_query($query); $obj = mysql_fetch_object($result); $id = $obj -> ID; mysql_close(); mysql_free_result($result); foreach ( $var as $value ) { $name = $value->name; $icon = $value->icon; $data = $value->data; $data_sequence = ''; $simbolo = ''; $gradi = ''; $desc = ''; foreach ( $data as $value ) { $data_sequence .= $value->forecast[0]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[1]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[2]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[3]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[4]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[5]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[6]->attributes()->data_sequence; $simbolo .= $value->forecast[0]->attributes()->$id.'::'; $simbolo .= $value->forecast[1]->attributes()->$id.'::'; $simbolo .= $value->forecast[2]->attributes()->$id.'::'; $simbolo .= $value->forecast[3]->attributes()->$id.'::'; $simbolo .= $value->forecast[4]->attributes()->$id.'::'; $simbolo .= $value->forecast[5]->attributes()->$id.'::'; $simbolo .= $value->forecast[6]->attributes()->$id; if( $name == 'Temperatura minima' || $name == 'Temperatura massima' ){ $gradi .= $value->forecast[0]->attributes()->$value.'::'; $gradi .= $value->forecast[1]->attributes()->$value.'::'; $gradi .= $value->forecast[2]->attributes()->$value.'::'; $gradi .= $value->forecast[3]->attributes()->$value.'::'; $gradi .= $value->forecast[4]->attributes()->$value.'::'; $gradi .= $value->forecast[5]->attributes()->$value.'::'; $gradi .= $value->forecast[6]->attributes()->$value; }else{ $desc .= $value->forecast[0]->attributes()->$value.'::'; $desc .= $value->forecast[1]->attributes()->$value.'::'; $desc .= $value->forecast[2]->attributes()->$value.'::'; $desc .= $value->forecast[3]->attributes()->$value.'::'; $desc .= $value->forecast[4]->attributes()->$value.'::'; $desc .= $value->forecast[5]->attributes()->$value.'::'; $desc .= $value->forecast[6]->attributes()->$value; } } mysql_connect(); mysql_select_db(); $query = 'INSERT INTO metalocation ( location, nome, icon, data, gradi, simbolo, description ) VALUES ( "'.$id.'", "'.$name.'", "'.$icon.'", "'.$data_sequence.'", "'.$gradi.'", "'.$simbolo.'", "'.$desc.'" )'; $result = mysql_query($query); mysql_close(); mysql_free_result($result); }
Certo basta che cambi il percorso del file XML e poi lo script fa da se.
$query = 'INSERT INTO location ( location ) VALUES ( "'.$city.'" )'; $result = mysql_query($query); $query = 'SELECT ID FROM location WHERE location="'.$city.'"'; $result = mysql_query($query); $obj = mysql_fetch_object($result); $id = $obj -> ID; mysql_close(); mysql_free_result($result); foreach ( $var as $value ) { $name = $value->name; $icon = $value->icon; $data = $value->data; $data_sequence = ''; $simbolo = ''; $gradi = ''; $desc = ''; foreach ( $data as $value ) { $data_sequence .= $value->forecast[0]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[1]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[2]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[3]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[4]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[5]->attributes()->data_sequence.'::'; $data_sequence .= $value->forecast[6]->attributes()->data_sequence; $simbolo .= $value->forecast[0]->attributes()->$id.'::'; $simbolo .= $value->forecast[1]->attributes()->$id.'::'; $simbolo .= $value->forecast[2]->attributes()->$id.'::'; $simbolo .= $value->forecast[3]->attributes()->$id.'::'; $simbolo .= $value->forecast[4]->attributes()->$id.'::'; $simbolo .= $value->forecast[5]->attributes()->$id.'::'; $simbolo .= $value->forecast[6]->attributes()->$id; if( $name == 'Temperatura minima' || $name == 'Temperatura massima' ){ $gradi .= $value->forecast[0]->attributes()->$value.'::'; $gradi .= $value->forecast[1]->attributes()->$value.'::'; $gradi .= $value->forecast[2]->attributes()->$value.'::'; $gradi .= $value->forecast[3]->attributes()->$value.'::'; $gradi .= $value->forecast[4]->attributes()->$value.'::'; $gradi .= $value->forecast[5]->attributes()->$value.'::'; $gradi .= $value->forecast[6]->attributes()->$value; }else{ $desc .= $value->forecast[0]->attributes()->$value.'::'; $desc .= $value->forecast[1]->attributes()->$value.'::'; $desc .= $value->forecast[2]->attributes()->$value.'::'; $desc .= $value->forecast[3]->attributes()->$value.'::'; $desc .= $value->forecast[4]->attributes()->$value.'::'; $desc .= $value->forecast[5]->attributes()->$value.'::'; $desc .= $value->forecast[6]->attributes()->$value; } } mysql_connect(); mysql_select_db(); $query = 'INSERT INTO metalocation ( location, nome, icon, data, gradi, simbolo, description ) VALUES ( "'.$id.'", "'.$name.'", "'.$icon.'", "'.$data_sequence.'", "'.$gradi.'", "'.$simbolo.'", "'.$desc.'" )'; $result = mysql_query($query); mysql_close(); mysql_free_result($result); }
Allora devi inserire
PHP:mysql_connect( host, username, password ); mysql_select_db( nome_database );
Postami tutto lo script completo !!! Cmq per creare una tabella ci vuole un altra query. Quello che ho fatto e per inserire i valore nelle tabelle già esistenti
Ok ora vedo. Cmq sto testando il codice su localhost e funziona.