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

Arquivo XML com BD MySQL


alphaz

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...