Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jeovane Carvalho

Resgatar dados do banco sem repetição php

Recommended Posts

Olá Pessoal estou fazendo uma integração para um portal via XML, mas o meu problema seria em php, pois este xml é dinâmico, e o que acontece é o seguinte:

O portal têm um padrão de XML e neste padrão estou com dificuldades nas tags FOTOS por exemplo, o portal quer um padrão específico e têm que ficar desta forma como exemplo abaixo:

 

<foto_URL_1>http://www.site.com/img001.jpg</foto_URL_1>

 

<foto_URL_2>http://www.site.com/img001.jpg</foto_URL_2>

 

<foto_URL_3>http://www.site.com/img001.jpg</foto_URL_3>

 

<foto_URL_4>http://www.site.com/img001.jpg</foto_URL_4>

 

<foto_URL_5>http://www.site.com/img001.jpg</foto_URL_5>

 

...................

Até fechar com as tags

 

<foto_URL_24>http://www.site.com/img001.jpg</foto_URL_24>, mesmo não tendo todas essas fotos em um anúncio eles querem que terminem com a tag de nº24, e o que acontece é que os ids do meu banco nessas fotos não estão nessa ordem e sim desta maneira tipo id 1085 id 1086 e por aí vai, e o postal faz questão desta ordem nas tags acima citada.

 

Já tentei usar o for desta maneira:

$limite = 10;
for ($n = 1; $n <= $limite; $n++) {
echo $n . "";
}

tipo colocando o $n dentro da tag desta maneira <foto_URL_".$n.">http://www.site.com/img001.jpg</foto_URL_".$n.">,só que ai acontece o seguinte ele repete 10 vezes a mesma foto por estar dentro do while que faz a contagem do BD tentei usar um foreach desta maneira:

<?php
$nomes = array('Thiago', 'João', 'Ricardo', 'Paula');
foreach ($nomes as $indice => $valor) {
echo $indice . " - ";
echo $valor . "";
}

Exemplos tirado do blog do Thiago Belém, e deu o mesmo resultado, têm outra maneira que fiz no exemplo do XML abaixo mas tbm não deu certo ainda, o código do meu XML que estou implantando é este abaixo:

<?php
header ('Content-type: application/xml');
require_once("config.php");
include_once("tags_integrado.php"); 

$hoje = date('Y-m-d');
?>
<root>
<todobrasil>
<feed_version>2013_001</feed_version>
</todobrasil>
<Anuncios>
<?php
function getPage($url, $referer='', $timeout=30, $header=''){
if ($referer=='') $referer='http://'.$_SERVER['HTTP_HOST'];
if(!isset($timeout)) $timeout=30;
$curl = curl_init();
if(strstr($referer,"://")){
curl_setopt ($curl, CURLOPT_REFERER, $referer);
}
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt ($curl, CURLOPT_USERAGENT, sprintf("Mozilla/%d.0",rand(4,5)));
curl_setopt ($curl, CURLOPT_HEADER, (int)$header);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
$html = curl_exec ($curl);
curl_close ($curl);
return $html;
}
/* MONTA CRITERIOS DE BUSCA */              
$where = "i.ativo ='1'";
$max=10000000;
$inicio = $max * $inicio;
/* calcula a quantidade de produtos sendo exibidos no momento */
$pgs = ceil($total / $max);
////////////////////////////////////////////////////////////
$sql =$MySQLi->query("SELECT  i.id, i.foto_exibicao,i.foto_titulo,i.foto_descricao,i.cep,i.area_construida,i.area_total,i.valor_condominio,i.valor_iptu,i.valor_prestacao,i.valor, i.quartos,i.suites,i.banheiros, i.garagem, i.codigo,i.data,i.msg, t.tipo_nome, u.tipo_nome_ingles, n.tipo AS negocio, c.cidade, c.uf, b.bairro FROM imoveis i
INNER JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo)
INNER JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel)
INNER JOIN imoveis_tipo u ON (u.id = i.id_tipo_imovel)
INNER JOIN cidades c ON (c.id = i.id_cidade)
INNER JOIN bairros b ON (b.id = i.bairro)
WHERE ".$where." ORDER BY id ASC LIMIT ".$inicio.", ".$max."") or print(mysqli_error());
while( $linha = mysqli_fetch_array($sql)){
$id=$linha['id'];
$negocio=$linha['negocio'];	
$dormitorios=$linha['quartos'];
$suites=$linha['suites'];	
$banheiros=$linha['banheiros'];
$garagem=$linha['garagem'];
$area_construida=$linha['area_construida'];
$area_total=$linha['area_total'];
$msg=$linha['msg'];
$foto_titulo=$linha['foto_titulo'];
$foto_descricao=$linha['foto_descricao'];
$valor_condominio=$linha['valor_condominio'];
$valor_iptu=$linha['valor_iptu'];
$valor_prestacao=$linha['valor_prestacao'];
$foto_exibicao=$linha['foto_exibicao'];
$data=$linha['data'];
$tipo_imovel=$linha['tipo_nome_ingles'];
//------------------------------//
$tipos=$linha['tipo_nome'];	
$tipo = $tipos;
$tipo  = strtolower( str_replace(" ", " ", strtr(utf8_decode(trim($tipo)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$bairros=$linha['bairro'];	
$bairro = $bairros;
$bairro = strtolower( str_replace(" ", " ", strtr(utf8_decode(trim($bairro)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$cidades=$linha['cidade'];	
$cidade = $cidades;
$cidade = strtolower( str_replace(" ", " ", strtr(utf8_decode(trim($cidade)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$tipos=$linha['tipo_nome'];	
$tipo_link = $tipos;
$tipo_link  = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($tipo_link)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$bairros=$linha['bairro'];	
$bairro_link = $bairros;
$bairro_link = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($bairro_link)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$cidades=$linha['cidade'];	
$cidade_link = $cidades;
$cidade_link = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($cidade_link)), 
utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$fotos=$linha['foto'];
$fotos_galeria="http://www.jcimoveisbrasil.com/img_imoveis/album/".$fotos."";
if( $linha['area_construida'] == '' || empty( $linha['area_construida'] ) ){
$area_construida = 'Consulte-nos';
}else{
$area_construida = ''. number_format( $linha['area_construida'], 0, ',', '' );
}
if( $linha['area_total'] == '' || empty( $linha['area_total'] ) ){
$area_total = 'Consulte-nos';
}else{
$area_total = ''. number_format( $linha['area_construida'], 0, ',', '' );
}
if( $linha['valor_condominio'] == '' || empty( $linha['valor_condominio'] ) ){
$valor_condominio = 'Consulte-nos';
}else{
$valor_condominio = ''. number_format( $linha['valor_condominio'], 0, ',', '' );
}
if( $linha['valor_iptu'] == '0.00' || empty( $linha['valor_iptu'] ) ){
$valor_iptu = 'Consulte-nos';
}else{
$valor_iptu = ''. number_format( $linha['valor_iptu'], 0, ',', '' );
}
if( $linha['valor'] == '0.00' || empty( $linha['valor'] ) ){
$valor = '0.00';
}else{
$valor = ''. number_format( $linha['valor'], 0, '', '' );
}//---------------------------------------------------------------------------------//
echo "
<AgenciaNome><![CDATA[".$nomeL."]]></AgenciaNome>
<AgenciaFone>".$fone1."</AgenciaFone>
<AgenciaEmail>".$email."</AgenciaEmail>
<Codigotodobrasil>....................... </Codigotodobrasil>
<CodigoImovel>".$id."</CodigoImovel>
<datadeentrada>21/04/2015</datadeentrada>
<TipoImovel><![CDATA[".$tipo."]]> </TipoImovel>
<Estado> <![CDATA[SP]]></Estado><Cidade> <![CDATA[".$cidade."]]> </Cidade>
<Bairro> <![CDATA[".$bairro."]]></Bairro>
<CEP>08290-000</CEP>
<Venda>Sim</Venda>
<Locacao>Não</Locacao>
<LocacaoTemporada>Não</LocacaoTemporada>
<PrecoVenda>".$valor."</PrecoVenda>
<PrecoLocacao>...........................</PrecoLocacao>
<PrecoLocacaoTemporada>......... </PrecoLocacaoTemporada>
<PrecoCondominio>..................... </PrecoCondominio>
<QtdDormitorios>".$dormitorios."</QtdDormitorios>
<QtdSuites>".$suites."</QtdSuites>
<QtdBanheiros>".$banheiros."</QtdBanheiros>
<QtdVagas>".$garagem."</QtdVagas>
<QtdElevador>Não</QtdElevador>
<QtdUnidadesAndar>Não</QtdUnidadesAndar>
<QtdAndar>Não</QtdAndar>
<AreaUtil>".$area_construida."</AreaUtil>
<AreaTotal>".$area_total."</AreaTotal>
<AnoConstrucao>Não</AnoConstrucao>
<Descricao><![CDATA[".$negocio.  "|" .$dormitorios."dormitórios". "|" .$foto_titulo. "|" .$foto_descricao."]]></Descricao>
<ArCondicionado>Não</ArCondicionado>
<Churrasqueira>Não</Churrasqueira>
<ArmarioEmbutido>Não</ArmarioEmbutido>
<Copa>Não</Copa>
<Guarita>Não</Guarita>
<Heliponto>Não</Heliponto>
<InfraInternet>Não</InfraInternet>
<Jardim>Não</Jardim>
<Mezanino>Não</Mezanino>
<Piscina>Não</Piscina>
<Playground>Não</Playground>
<QuadraTenis>Não</QuadraTenis>
<QuadraPoliEsportiva>Não</QuadraPoliEsportiva>
<Quintal>Não</Quintal>
<SalaGinastica>Não</SalaGinastica>
<SalaoFestas>Não</SalaoFestas>
<SalaoJogos>Não</SalaoJogos>
<Sauna>Não</Sauna>
<Telefone>Não</Telefone>
<TVCabo>Não</TVCabo>
<Varanda>Não</Varanda>
<WCEmpregada>Não</WCEmpregada>
<Closet>.Não</Closet>
<Hidromassagem>Não</Hidromassagem>
<Lareira>Não</Lareira>
<FrenteMar>Não</FrenteMar>
<AreaServico>Não</AreaServico>
<Despensa>Não</Despensa>
<HomeTheater>Não</HomeTheater>
<Interfone>Não</Interfone>
<SalaJantar>Não</SalaJantar>
<Mobiliado>Não</Mobiliado>
<Terraco>Não</Terraco>
";
?>

<?php
$max_2=1;
$inicio_2 = $max_2 * $inicio;
/* calcula a quantidade de produtos sendo exibidos no momento */
$pgs = ceil($total / $max);
$sql2 = $MySQLi->query("SELECT * FROM  imoveis WHERE id=".$id." ORDER BY id DESC LIMIT ".$inicio_2.", ".$max_2." ")OR trigger_error($MySQLi->error, E_USER_ERROR);
while($linha = mysqli_fetch_array($sql2)){
$mapa= $linha['mapa'];
$url = getPage('http://maps.google.com/maps/api/geocode/json?address='.$mapa.'&sensor=false');
$output= json_decode($url);
$lat =  $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;
echo "<GMapsLatitude><![CDATA[".$lat."]]></GMapsLatitude>
<GMapsLongitude><![CDATA[".$long."]]> </GMapsLongitude>
"
; 
}
?>
//------------------INICIO SESSÃO DAS FOTOS------------------------//
<?php

$max_2=10;

$inicio_2 = $max_2 * $inicio;
/* calcula a quantidade de produtos sendo exibidos no momento */
$pgs = ceil($total / $max);
$sqll = $MySQLi->query("SELECT * FROM fotos AS foto WHERE id_imovel=".$id." ORDER BY id ASC LIMIT ".$inicio_2.", ".$max_2." ")OR trigger_error($MySQLi->error, E_USER_ERROR);
while($linhas = mysqli_fetch_array($sqll)){
$foto=mysqli_num_rows($sqll);

$num_foto=$linhas['id_imovel'];
$fotos=$linhas['foto'];
$id_foto=$linhas['id'];
$fotos_galeria="http://www.jcimoveisbrasil.com/img_imoveis/album/".$fotos."";

$num_foto = array($num_foto);
foreach ($num_foto as $indice => $id_foto) {



echo"<foto_URL_".$indice.">".$fotos_galeria."</foto_URL_".$indice.">";
}}
?>
//------------------FIM SESSÃO DAS FOTOS------------------------//
<?php
echo"
<insertion_date><![CDATA[".$data."]]></insertion_date>

".PHP_EOL."";
}
?>
</Anuncios>
</root> 			

Se alguém poder me dar um pequeno help nisso ficarei agradecido..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.