Ir para conteúdo
Fórum Script Brasil
  • 0

Ler XML e gravar dados em banco


Von_Reibnitz

Pergunta

Olá, econtrei este script de previsão do tempo que pega os dados de um xml e grava em banco, mas não estou conseguindo fazer ele exibir os dados corretamente:

 

estrutura arquivo tempo.php

<?php 
//Script desenvolvido por Victor Mangia em 23/08/2010 22:04
//Twitter: @mangiavictor
     

//entre abaixo com o numero da cidade
//busque o numero da cidade em http://tempo.cptec.inpe.br/
$numerocidade="1064";

//configuração de conexão com o banco de dados
mysql_connect('localhost', 'user', 'senha') or die('Não foi possivel conectar: ' . mysql_error()); 
 mysql_select_db('previsao') or die('Não pude selecionar o banco de dados');
 
 
//verificar se já tem o registro no banco
$sqlPrevisao=mysql_num_rows(mysql_query("select * from previsao where dt_atualizacao = now()"));
if($sqlPrevisao < 1)
{
	$obj = simplexml_load_file("http://servicos.cptec.inpe.br/XML/cidade/".$numerocidade."/previsao.xml");
	$contaReg = count($obj) - 1;
	for($i=0; $i <=$contaReg; $i++)
	{
		//evitando gravacao de registros invalidos
		if(isset($obj->previsao[$i]->dia))
		{ 
		//gravando as previsoes
		$sqlGravar=mysql_query("insert into previsao_brasmid set 
		dia='".$obj->previsao[$i]->dia."',
		icone='".$obj->previsao[$i]->tempo."',
		maxima='".$obj->previsao[$i]->maxima."',
		minima='".$obj->previsao[$i]->minima."',
		dt_atualizacao=now()
		");
		}
		
		//buscar a previsao do dia
		$sqlDia=mysql_fetch_array(mysql_query("select minima, maxima, icone from previsao_brasmid order by dia desc limit 1"));
		$icone="<img src='icones_tempo/".$sqlDia['icone'].".png' alt=''>";
		$maxima=$sqlDia['maxima'];
		$minima=$sqlDia['minima'];	
	}	
} else {
		//buscar a previsao do dia
		$sqlDia=mysql_fetch_array(mysql_query("select minima, maxima, icone from previsao_brasmid order by dia desc limit 1"));
		$icone="<img src='icones_tempo/".$sqlDia['icone'].".png' alt=''>";
		$maxima=$sqlDia['maxima'];
		$minima=$sqlDia['minima'];
}
?>

 

estrutura index.php


<?php
//Script desenvolvido por Victor Mangia em 23/08/2010 22:04
//Twitter: @mangiavictor

//Configure o arquivo abaixo com seu banco de dados
include "tempo.php";
?> 
<table width='145' border='0' cellpadding='1' cellspacing='0' class='txttopo'>
<tr><td width='41' rowspan='2' align='center'><?php echo $icone;?></td>
<td colspan='5'><strong>Caçador/SC</strong></td>
</tr><tr><td width='10'><img src='icones_tempo/seta_topo1.gif' alt='Temperatura M&iacute;nima' width='10' height='9' /></td>
<td width='21'><strong><?php echo $minima;?></strong></td>
<td width='10'><img src='icones_tempo/seta_topo2.gif' alt='Temperatura M&aacute;xima' width='10' height='9' /></td>
<td width='20'><strong><?php echo $maxima;?></strong></td>
<td><strong>-<?php echo date('d/m/y');?></strong></td>
</tr></table>

 

banco de dados




CREATE TABLE IF NOT EXISTS `previsao_brasmid` (
  `dia` date NOT NULL,
  `icone` varchar(100) NOT NULL,
  `maxima` int(3) NOT NULL,
  `minima` int(3) NOT NULL,
  `dt_atualizacao` date NOT NULL,
  KEY `dia` (`dia`)
);

o que acontece é que ele gera uma enorme quantia de dados no banco, e mostra apenas a previsão para o 4º dia e não a atual.

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...