Jump to content
Fórum Script Brasil
  • 0

Arquivo XML com BD MySQL


alphaz
 Share

Question

Olá tenho duas tabelas clientes e pedidos.

Clientes
id
Nome
Data
CPF

Pedidos
id
id_cliente
quant
Descricao
Val_Uni
Val_Total
 

Como posso gerar um arquivo XML com uma consulta com estas duas tabelas ?

O arquivo tem que ser mostrado assim Ex:
<pedidos>
<cliente>José</cliente>
<pedido>50 sacos de cimento</pedido>
<pedido>10 sacos de cal</pedido>
<pedido>1000 tijolos</pedido>
</pedidos>
<pedidos>
<cliente>Maria</cliente>
<pedido>05 tubos de PVC 50mm</pedido>
<pedido>04 cotovelos 45º 50mm</pedido>
</pedidos>

Obrigado

 

 

 

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0


Vamos ver se você pode me dar uma luz então , segue meu PHP já com JOIN.

O problema é que em vez dele mostrar cada registro com todas as suas fotos ele duplica o registro para cada foto que o mesmo tenha.

Em vez de ficar assim

<codigo>001.001</codigo>
<foto_fotos>
    <foto>5000.jpg</foto>
    <foto>6000.jpg</foto>
    <foto>7000.jpg</foto>
</foto_fotos>

Fica assim

<codigo>001.001</codigo>
<foto_fotos>
    <foto>5000.jpg</foto>
</foto_fotos>

<codigo>001.001</codigo>
<foto_fotos>
    <foto>6000.jpg</foto>
</foto_fotos>

<codigo>001.001</codigo>
<foto_fotos>
    <foto>7000.jpg</foto>
</foto_fotos>

 

Segue meu php.

<?
error_reporting(0);//omite os erros

$host    = " "; # Endereço do servidor MySQL
$usuario = " "; # Nome de usuário do MySQL
$passwd  = " "; # Senha do MySQL
$bd = " "; # Nome do Banco de Dados


# Conexão com o BD;
$conexao = mysql_connect("$host", "$usuario", "$passwd") or die ("Não foi possível conectar a base de dados");
$db = mysql_select_db("$bd", $conexao) or die ("Não foi possível selecionar a base de dados");

?>

<?php


$consulta = @mysql_query("SELECT imoveis.id, imoveis.ativo, imoveis.codigo, imoveis.quartos, imoveis.suites, imoveis.banheiros, imoveis.garagem, imoveis.area_total, imoveis.valor_liq, imoveis.valor_iptu, imoveis.valor_condominio, imoveis.msg, fotos.foto, cidades.cidade, bairros.bairro, imoveis_tipo.tipo_nome, negocio_tipo.tipo FROM imoveis INNER JOIN fotos ON imoveis.id=fotos.id_imovel INNER JOIN cidades ON imoveis.id_cidade=cidades.id INNER JOIN bairros ON imoveis.bairro=bairros.id INNER JOIN imoveis_tipo ON imoveis.id_tipo_imovel=imoveis_tipo.id INNER JOIN negocio_tipo ON imoveis.id_negocio_tipo=negocio_tipo.id Where imoveis.ativo = 1 ORDER BY imoveis.id;");


$manipulador_arq = fopen("novo.xml","w+");


@fwrite($manipulador_arq,"<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n\n\n<imoveis>");


while($exibir = @mysql_fetch_array($consulta))
    


{

$xml = "\n\n<imovel>\n";
$xml .= "<referencia>$exibir[2]</referencia>\n";
$xml .= "<codigo_cliente>$exibir[2]</codigo_cliente>\n";
$xml .= "<link_cliente>http://www.xxxxx.com.br/imovel.php=$exibir[0]</link_cliente>\n";
$xml .= "<titulo>$exibir[15]</titulo>\n";
$xml .= "<transacao>$exibir[16]</transacao>\n";
$xml .= "<finalidade>RE</finalidade>\n";
$xml .= "<tipo>$exibir[15]</tipo>\n";
$xml .= "<valor>$exibir[8]</valor>\n";
$xml .= "<valor_locacao>$exibir[8]</valor_locacao>\n";
$xml .= "<valor_iptu>$exibir[9]</valor_iptu>\n";
$xml .= "<valor_condominio>$exibir[10]</valor_condominio>\n";
$xml .= "<area_total>$exibir[7]</area_total>\n";
$xml .= "<quartos>$exibir[3]</quartos>\n";
$xml .= "<suites>$exibir[4]</suites>\n";
$xml .= "<garagem>$exibir[6]</garagem>\n";
$xml .= "<banheiro>$exibir[5]</banheiro>\n";
$xml .= "<estado>PR</estado>\n";
$xml .= "<cidade>$exibir[13]</cidade>\n";
$xml .= "<bairro>$exibir[14]</bairro>\n";
$xml .= "<descritivo>$exibir[11]</descritivo>\n";
$xml .= "<foto>http://www.xxxxxx.com.br/imoveis/album/$exibir[12]</foto>\n";
$xml .= "\n</imovel>";

@fwrite($manipulador_arq,$xml);

}

@fwrite($manipulador_arq,"\n\n</imoveis>");

?>

Link to comment
Share on other sites

  • 0

O JOIN faz isso mesmo.

Você precisa tratar isso na programação.  Dentro do loop, verifique o ID do cliente. Se for o mesmo ID do anterior, não crie a nova tag, adicione na que já existe.

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5  e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/


 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...