I need to format a xml
in php
to write to MySQL
, but I'm having difficulty understanding and even doing it.
Today I have this xml:
<?xml version='1.0' encoding='UTF-8'?>
<api>
<response version='1.1.3' success='1'
message='Previs&#xE3;o de chuva - mm'
type='chuva' time='1491420459' total='1'>
<legends />
</response>
<data>
<item dateBegin='2017-04-05 00:00:00' dateEnd='2017-04-19 23:59:59'>
<locale id='6634' name='NomeCidade'
latitude='-23.7060'
longitude='-51.6390'>
<type id='7' name='CIDADE' />
</locale>
<weather>
<item probability='80' precipitation='10' date='2017-04-05 00:00:00' />
<item probability='' precipitation='20' date='2017-04-06 00:00:00' />
<item probability='80' precipitation='6' date='2017-04-07 00:00:00' />
<item probability='80' precipitation='2' date='2017-04-08 00:00:00' />
<item probability='80' precipitation='4' date='2017-04-09 00:00:00' />
<item probability='80' precipitation='5' date='2017-04-10 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-11 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-12 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-13 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-14 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-15 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-16 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-17 00:00:00' />
<item probability='80' precipitation='0' date='2017-04-18 00:00:00' />
<item probability='0' precipitation='0' date='2017-04-19 00:00:00' />
</weather>
</item>
</data>
</api>
And what I'm trying to do is something like this:
if ($status = true)
{
//Leitura do ramo Cidade
for($i=0; $i < count($xml->cidades->cidade); $i++)
{
$id = $xml->cidades->cidade[$i]['id'];
//Leitura do ramo Data e seus atributos
for($z=0; $z < count($xml->cidades->cidade[$i]->data); $z++)
{
$data = $xml->cidades->cidade[$i]->data[$z]['diaprevisao'];
$data_aux = substr($data,6,4).'-'.substr($data,3,2).'-'.substr($data,0,2);
//atributos da data
$frase = utf8_decode($xml->cidades->cidade[$i]->data[$z]->frase);
$min = utf8_decode($xml->cidades->cidade[$i]->data[$z]->min);
$max = utf8_decode($xml->cidades->cidade[$i]->data[$z]->max);
$prob = utf8_decode($xml->cidades->cidade[$i]->data[$z]->prob);
$prec = utf8_decode($xml->cidades->cidade[$i]->data[$z]->prec);
$icomanha = utf8_decode($xml->cidades->cidade[$i]->data[$z]->icomanha);
$icotarde = utf8_decode($xml->cidades->cidade[$i]->data[$z]->icotarde);
$iconoite = utf8_decode($xml->cidades->cidade[$i]->data[$z]->iconoite);
$icodia = utf8_decode($xml->cidades->cidade[$i]->data[$z]->icondia);
$uv = utf8_decode($xml->cidades->cidade[$i]->data[$z]->uv);
$ventodir = utf8_decode($xml->cidades->cidade[$i]->data[$z]->ventodir);
$ventomax = utf8_decode($xml->cidades->cidade[$i]->data[$z]->ventomax);
$ventoint = utf8_decode($xml->cidades->cidade[$i]->data[$z]->ventoint);
$umidade = utf8_decode($xml->cidades->cidade[$i]->data[$z]->umidade);
mysql_select_db($database_con, $conn);
$sql = "SELECT Data, IdCidade FROM PrevisaoClima WHERE Data = '$data_aux' AND IdCidade = $id";
$rcDados = mysql_query($sql, $conn) or die(mysql_error());
$row_rcDados = mysql_fetch_assoc($rcDados);
$totalRows_rcDados = mysql_num_rows($rcDados);
if ($totalRows_rcDados > 0) {
mysql_select_db($database_con, $conn);
$sql = "UPDATE 'clima'.'PrevisaoClima' SET 'Frase'='$frase', 'TempMin'='$min', 'TempMax'='$max', 'ProbChuva'='$prob', 'PrecisaoChuva'='$prec', 'IconeManha'='$icomanha', 'IconeTarde'='$icotarde', 'IconeNoite'='$iconoite', 'IconeDia'='$icodia', 'VentoDir'='$ventodir', 'VentoMax'='$ventomax', 'VentoMin'='$ventoint', 'Umidade'='$umidade', 'Uv'='$uv' WHERE 'Data'='$data_aux' AND 'IdCidade'=$id";
$result = mysql_query($sql, $conn);
if (!$result) {
$message = 'ERRO: ' . mysql_error() . "\n";
$message .= 'Query: ' . $sql;
die($message);
}
} else {
mysql_select_db($database_con, $conn);
$sql = "INSERT INTO 'clima'.'PrevisaoClima' ('Data', 'IdCidade', 'Frase', 'TempMin', 'TempMax', 'ProbChuva', 'PrecisaoChuva', 'IconeManha', 'IconeTarde', 'IconeNoite', 'IconeDia', 'VentoDir', 'VentoMax', 'VentoMin', 'Umidade', 'Uv') VALUES ('$data_aux', '$id', '$frase', '$min', '$max', '$prob', '$prec', '$icomanha', '$icotarde', '$iconoite', '$icodia', '$ventodir', '$ventomax', '$ventoint', '$umidade', '$uv')";
$result = mysql_query($sql, $conn);
if (!$result) {
$message = 'ERRO: ' . mysql_error() . "\n";
$message .= 'Query: ' . $sql;
die($message);
}
}
}
}
}
echo "Importação terminada.";
Put the nodes in php
variables.