Jump to content


Photo

Problemas Na Criação De Xml


  • Faça o login para participar
1 reply to this topic

#1 morsoleto

morsoleto

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado

Posted 21/01/2008, 16:45

ae pessoal, seguinte: tenho um codigo em php que pega os dados do banc mysql e tranforma em xml. Ele ta criando o arquivo certinho, soh que ta dando pau nos dados. Ele entende que existem tres regitros no banco mas ele repete sempre o primeiro, ai ficam tres dados repetidos no xml, entenderam??
Alguem consegue me ajudar??
to postando o codigo abaixo:
[codebox]
<?

//CONECTA AO BANCO DE DADOS
$conn = mysql_connect("localhost", "root","root") or die("ERRO NA CONEXÃO");

//SELECIONA A BASE DE DADOS A SER UTILIZADA
$db = mysql_select_db("galeria", $conn) or die("ERRO NA SELEÇÃO DA BASE DE DADOS");

$query_fotos = "SELECT * FROM galfotos";
$fotos = mysql_query($query_fotos, $conn) or die(mysql_error());
$row_fotos = mysql_fetch_assoc($fotos);
$totalRows_fotos = mysql_num_rows($fotos);

$fotogrande = $row_fotos['nomefoto'];
$thumbfoto = $row_fotos['thumbfoto'];
$descfoto = $row_fotos['titulofoto'];

// gravando o documento XML e encapsulando o resultado na variável $xml
$xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?> ";

// abrindo o nó principal
$xml .= "<imagens>";

// abrindo o while com os dados das fotos, isso delimita cada bloco de informações de fotos com seus respectivos dados(subnós) dentro deste nó

do {

// subnós de informações - nome da foto, thumbnail da foto, título de apresentação da foto
$xml .="<foto>
<fotog>$fotogrande</fotog>
<thumb>$thumbfoto</thumb>
<desc>$descfoto </desc>
</foto>
";

// fechando o while dos dados
} while ($row_fotos = mysql_fetch_assoc($fotos));

// fechando o nó principal
$xml .="</imagens>";

$fp = @fopen('galeria1.xml','w');
if(!$fp) {
die('Não foi possivel abrir o XML');
}
$write = fwrite($fp,$xml);
if(!$write) {
die('Não foi possivel gravar os dados no XML');
}else {
echo "Dados gravados com sucesso no XML galeria1.xml";
echo ($fotogrande);
fclose($fp);
}

mysql_free_result($fotos);

?>
[/codebox]

Edição feita por: savior, 21/01/2008, 17:07.


#2 _Samuca_

_Samuca_

    samuelmachado.com

  • Usuários
  • 1062 posts
  • Sexo:Masculino
  • Localidade:São Bento do Sul - SC

Posted 25/01/2008, 09:58

esta pegando os dados errados dentro do do while()

mudei pra while só, e mudei as variaveis lá dentro do loop


<?

//CONECTA AO BANCO DE DADOS
$conn = mysql_connect("localhost", "root","root") or die("ERRO NA CONEXÃO");

//SELECIONA A BASE DE DADOS A SER UTILIZADA
$db = mysql_select_db("galeria", $conn) or die("ERRO NA SELEÇÃO DA BASE DE DADOS");

$query_fotos = "SELECT * FROM galfotos";
$fotos = mysql_query($query_fotos, $conn) or die(mysql_error());
$row_fotos = mysql_fetch_assoc($fotos);
$totalRows_fotos = mysql_num_rows($fotos);

// gravando o documento XML e encapsulando o resultado na variável $xml
$xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?> ";

// abrindo o nó principal
$xml .= "<imagens>";

// abrindo o while com os dados das fotos, isso delimita cada bloco de informações de fotos com seus respectivos dados(subnós) dentro deste nó

while ($row_fotos = mysql_fetch_assoc($fotos)){

// subnós de informações - nome da foto, thumbnail da foto, título de apresentação da foto
$xml .="<foto>
<fotog>$row_fotos['nomefoto']</fotog>
<thumb>$row_fotos['thumbfoto']</thumb>
<desc>$row_fotos['titulofoto']</desc>
</foto>
";

// fechando o while dos dados
}

// fechando o nó principal
$xml .="</imagens>";

$fp = @fopen('galeria1.xml','w');
if(!$fp) {
die('Não foi possivel abrir o XML');
}
$write = fwrite($fp,$xml);
if(!$write) {
die('Não foi possivel gravar os dados no XML');
}else {
echo "Dados gravados com sucesso no XML galeria1.xml";
echo ($fotogrande);
fclose($fp);
}

mysql_free_result($fotos);

?>

--
Samuel Machado
www.samuelmachado.com




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq