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

Integração XML para MySQL com PHP


PeterNovassat

Pergunta

Olá galera do Scriptbrasil, é o seguinte eu sou novo por aqui e também sou novo em programação php.
Estou recentemente num estágio, desde agora peço desculpas pelas minhas ignorâncias a seguir.

Comecei a pouco tempo numa empresa e já peguei uma bucha...

Estamos refazendo um site de imobiliária, mas o site é alimentado por um WebService do Gaia.

http://www.valuegaia...sx8klbQFrdzEw==

Eu já consegui importar todos os dados das tags <Imovel> porém, eu preciso colocar na mesma tabela os dados da tag <corretor>, sim eu sei que é loucura eu também queria criar outra tabela para os corretores e para as fotos dos imoveis, só que a empresa quer que coloque tudo numa mesma tabela, mas ao tentar inserir os corretores e as fotos, apenas é inserido o primeiro corretor e primeira foto de todo o XML

Nome da DB: testeGaia
Nome tabela: t1

Por favor eu estou com um tempo determinado para resolver este problema skull.gif , se alguém pudesse me ajudar em algo eu ficaria imensamente grato!!

Segue o meu script abaixo:

<?php
/* Conectar com o banco de dados da aplicação */
@mysql_connect('localhost', 'root', '') or die('Erro ao conectar');
@mysql_select_db('testeGaia') or die('Erro ao conectar com o banco de dados');
/* Lê o arquivo XML e recebe um objeto com as informações */
$xml = simplexml_load_file($url);
/* Este foreach serve apenas para exibir os dados na tela
foreach ($xml->Imoveis->Imovel as $imovel){
$a = "Filial: " . $imovel->Filial . "<br>";
$a .= "CategoriaImovel: " . $imovel->CategoriaImovel. "<br><br>";
echo $a;
}
*/
$x = 0;
foreach ($xml->Imoveis->Imovel as $imovel){
mysql_query("INSERT INTO t1(Filial, CodigoCliente, CodigoImovel,
CodigoImovelAuxiliar, DataCadastro, DataAtualizacao,
TituloImovel, Publicar, TipoImovel,
SubTipoImovel,Finalidade, CategoriaImovel,
Estado, Cidade, Bairro,
Endereco, Numero, CEP,
ComplementoEndereco, PontoReferenciaEndereco, latitude,
longitude, NomeCondominio, NomeEdificio,
StatusComercial, TipoOferta,
PrecoVenda, PrecoIptu, PrecoMedioM2Venda,
PrecoLocacao, PrecoMedioM2Locacao, AreaUtil,
AreaTotal, UnidadeMetrica, PadraoImovel,
PadraoLocalizacao, Promocao, Repasse,
Ocupacao, AreaPrivativa, AceitaNegociacao,
AceitaFinanciamento, Zoneamento, AreaComum,
AceitaPermuta, FaceImovel, NumeroAndar,
PortaoEletronico, Mezanino, JardimInverno,
ServicoCozinha, Solarium, CimentoQueimado,
Sacada, Lavabo, ArmarioCorredor,
ArmarioDormitorio, ArmarioBanheiro, ArmarioAreaServico,
PisoLaminado, PisoCeramica, PisoGranito,
PisoPorcelanato, VarandaGourmet, PisoTacoMadeira,
ContraPiso, CarpeteMadeira, QtdDormitorios,
QtdSuites, QtdBanheiros, QtdSalas,
QtdVagasDescobertas, QtdVagas, QtdElevador,
QtdAndar, AnoConstrucao, Observacao,
QuadraPoliEsportiva, Zelador, Quintal,
Hidromassagem, Copa, Escritorio,
WCEmpregada, Agua, Esgoto,
RuaAsfaltada, Vestiario, Varanda,
Despensa, EnergiaEletrica , Churrasqueira,
Piscina, Sauna, ArmarioCozinha,
ArCondicionado, TVCabo, AreaServico, LinkVideo
)
VALUES ('$imovel->Filial', '$imovel->CodigoCliente', '$imovel->CodigoImovel',
'$imovel->CodigoImovelAuxiliar', '$imovel->DataCadastro', '$imovel->DataAtualizacao',
'$imovel->TituloImovel', '$imovel->Publicar', '$imovel->TipoImovel',
'$imovel->SubTipoImovel', '$imovel->Finalidade', '$imovel->CategoriaImovel',
'$imovel->Estado', '$imovel->Cidade', '$imovel->Bairro',
'$imovel->Endereco', '$imovel->Numero', '$imovel->CEP',
'$imovel->ComplementoEndereco', '$imovel->PontoReferenciaEndereco', '$imovel->latitude',
'$imovel-> longitude', '$imovel->NomeCondominio', '$imovel->NomeEdificio',
'$imovel->StatusComercial', '$imovel->TipoOferta',
'$imovel->PrecoVenda', '$imovel->PrecoIptu', '$imovel->PrecoMedioM2Venda',
'$imovel->PrecoLocacao', '$imovel->PrecoMedioM2Locacao', '$imovel->AreaUtil',
'$imovel->AreaTotal', '$imovel->UnidadeMetrica', '$imovel->PadraoImovel',
'$imovel->PadraoLocalizacao', '$imovel->Promocao', '$imovel->Repasse',
'$imovel->Ocupacao', '$imovel->AreaPrivativa', '$imovel->AceitaNegociacao',
'$imovel->AceitaFinanciamento', '$imovel->Zoneamento', '$imovel->AreaComum',
'$imovel->AceitaPermuta', '$imovel->FaceImovel', '$imovel->NumeroAndar',
'$imovel->PortaoEletronico', '$imovel->Mezanino', '$imovel->JardimInverno',
'$imovel->ServicoCozinha', '$imovel->Solarium', '$imovel->CimentoQueimado',
'$imovel->Sacada', '$imovel->Lavabo', '$imovel->ArmarioCorredor',
'$imovel->ArmarioDormitorio', '$imovel->ArmarioBanheiro', '$imovel->ArmarioAreaServico',
'$imovel->PisoLaminado', '$imovel->PisoCeramica', '$imovel->PisoGranito',
'$imovel->PisoPorcelanato', '$imovel->VarandaGourmet', '$imovel->PisoTacoMadeira',
'$imovel->ContraPiso', '$imovel->CarpeteMadeira', '$imovel->QtdDormitorios',
'$imovel->QtdSuites', '$imovel->QtdBanheiros', '$imovel->QtdSalas',
'$imovel->QtdVagasDescobertas', '$imovel->QtdVagas', '$imovel->QtdElevador',
'$imovel->QtdAndar', '$imovel->AnoConstrucao', '$imovel->Observacao',
'$imovel->QuadraPoliEsportiva', '$imovel->Zelador', '$imovel->Quintal',
'$imovel->Hidromassagem', '$imovel->Copa', '$imovel->Escritorio',
'$imovel->WCEmpregada', '$imovel->Agua', '$imovel->Esgoto',
'$imovel->RuaAsfaltada', '$imovel->Vestiario', '$imovel->Varanda',
'$imovel->Despensa', '$imovel->EnergiaEletrica', '$imovel->Churrasqueira',
'$imovel->Piscina', '$imovel->Sauna', '$imovel->ArmarioCozinha',
'$imovel->ArCondicionado', '$imovel->TVCabo', '$imovel->AreaServico', '$imovel->LinkVideo'
)");
if(mysql_affected_rows() != -1){
$x++;
}
}
echo "<table align='center' border='10'><tr><td align='center'>$x registros foram importados com sucesso!</td></tr>";
//-----------------------------------------------------------------------''----------------------------------------------------------------------------------------------
$Y = 0;
foreach ($xml->Imoveis->Imovel as $corretor){
mysql_query("INSERT INTO t1( nome, telefone, celular, email, foto)
VALUES ('$corretor->nome', '$corretor->telefone', '$corretor->celular', '$corretor->email', '$corretor->foto')");
if(mysql_affected_rows() != -1){
$Y++;
}
}
echo "<tr><td align='center'>$Y corretores foram importados com sucesso!</td></tr>";
//-------------------------------------------------------------------------''--------------------------------------------------------------------------------------------
$w = 0;
foreach ($xml->Imoveis->Imovel->Fotos->Foto as $foto){
mysql_query("INSERT INTO t1( NomeArquivo, URLArquivo, Principal, Alterada)
VALUES ('$foto->NomeArquivo', '$foto->URLArquivo', '$foto->Principal', '$foto->Alterada')");
if(mysql_affected_rows() != -1){
$w++;
}
}
echo "<tr><td>$w fotos foram importados com sucesso!</td></tr></table>";
?>
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite amigo, a primeira coisa, de uma olhada neste link http://screencast.com/t/cLamENR09r, quando for postar códigos, faça desta maneira.

No exemplo que você postou o link existe so um corretor, como ficaria se tivesse mais de um?

Ao invés de:

foreach ($xml->Imoveis->Imovel as $corretor){
    mysql_query("INSERT INTO t1( nome, telefone, celular, email, foto) 
VALUES ('$corretor->nome', '$corretor->telefone', '$corretor->celular', '$corretor->email', '$corretor->foto')");
 
    if(mysql_affected_rows() != -1){
       $Y++;
    }
}

não seria:

foreach ($xml->Imoveis->Imovel->corretor as $corretor){
  ...
}

já as fotos acho que funciona se ao invés disso:

foreach ($xml->Imoveis->Imovel->Fotos->Foto as $foto){
  ...
}

você colocasse assim:

foreach ($xml->Imoveis->Imovel->Fotos as $foto){

Testa ai e me fala, sou uma negação com XML.

Link para o comentário
Compartilhar em outros sites

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,5k
×
×
  • Criar Novo...