Jump to content


Photo

Xml X Php


  • Faça o login para participar
11 replies to this topic

#1 asanoli

asanoli

    Novato no fórum

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

Posted 03/08/2006, 14:43

Preciso pegar dados de uma tabela e jogá-los num XML. Daí, a medida que novos registros sejam inseridos na tabela, passarão a fazer parte do XML. Alguém sabe como faço pra inserir variáveis num XML??? A estrutura é super simples:

<?xml version="1.0" encoding="UTF-8"?>
<jobs>
<foto fp="foto1p.jpg" />
<foto fp="foto2p.jpg" />
<foto fp="foto3p.jpg" />
</jobs>

Achei alguma coisa pelos fóruns afora, mas não consegui fazer.

Valeu!

Alexandre

Edição feita por: asanoli, 03/08/2006, 14:44.


#2 sirgoth

sirgoth

    Turista

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

Posted 03/08/2006, 15:04

usa fopen() e/ou fwrite().

http://br2.php.net/m...tion.fwrite.php
http://br2.php.net/m...ction.fopen.php

(y) nunca usei, mas funciona (y)

;)

#3 rEd nEcK *

rEd nEcK *

    |̲̅<̲̅Θ̲̅>̲̅|

  • Usuários
  • 164 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 03/08/2006, 15:25

Boa tarde ;D

Cara depende muito da versão do seu php, apartir do php5 as lib's dom e simplexml foram adicionadas ;D

elas são muito boas, e facilitam muitoooooooo o serviço ;D, caso contrario tem que ser feito na unha mesmo (via fopen, fwrite, fclose) ;(

Enfim, se você estiver com php5, vale a pena dar uma olhada:
Api Dom 1 - by Wilker
Api Dom 2 - by Wilker

Qualquer duvida só postar cara ;D
Abraços
~/ ArrastoMemo.Com - Porque ganhar não é tudo, tem que humilhar o adversário /~

#4 asanoli

asanoli

    Novato no fórum

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

Posted 04/08/2006, 09:39

Blz?! Então... Li sua resposta sobre como gerar arquivos XML através do PHP. Não entendi muito bem pois o meu nível de conhecimento ainda não permitiu... Ainda estou usando o PHP 4, ou seja, esquema fwrite, fopen, fclose.

Achei um tutorial bacana e comecei a fazer. Na hora de testar, não funcionou. Será que você pode dar uma olhada e ver se consegue achar o que tem de errado?!!!

O ERRO:

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\alexandreoliveira\help\novo_lista_trabalhos.php on line 21 (21 até 25)


O CODIGO:

<?

include ("conexao.php");

$sql="select * from trabalhos, cadastro where cod_cad=cod_cad_trab order by cod_cad_trab asc";

$resultado=mysql_query ($sql) or die ("Problema na consulta!");

$linha=mysql_num_rows ($resultado);

if ($linha!="") {

$arquivo="fotos.xml";

$ponteiro=fopen($arquivo, "w");

fwrite($ponteiro, "<?xml version=\"1.0\"?>\r\n");
fwrite($ponteiro, "<jobs>\r\n");
for($i=0; $i<$linha; $i++) {

$id =mysql_result($sql,$i,"cod_cad_trab");
$oque =mysql_result($sql,$i,"oque_trab");
$pic01=mysql_result($sql,$i,"pic01_trab");
$pic02=mysql_result($sql,$i,"pic02_trab");
$pic03=mysql_result($sql,$i,"pic03_trab");

$conteudo ="<trabalhos>\r\n";
$conteudo .="<cod>$id</cod>\r\n";
$conteudo .="<oque>$oque</oque>\r\n";
$conteudo .="<pic01>$pic01</pic01>\r\n";
$conteudo .="<pic02>$pic02</pic02>\r\n";
$conteudo .="<pic03>$pic03</pic03>\r\n";
$conteudo .="</trabalhos>\r\n";

fwrite ($ponteiro, $conteudo);
}
fwrite ($ponteiro, "</jobs>");

fclose ($ponteiro);

echo "O arquivo <b>".$arquivo."</b> foi gerado com sucesso!";
}

?>

Até gerou o arquivo, mas sem as variáveis!!

Desde já, obrigado!!! Abs,

Alexandre

Edição feita por: asanoli, 04/08/2006, 09:47.


#5 aimola

aimola

    Webdeveloper

  • Usuários
  • 471 posts
  • Sexo:Masculino
  • Localidade:Sampa

Posted 04/08/2006, 09:44

Vc está trabalhando com duas tabelas (inner join) terá de especificar os campos que vc precisa, isto é, não pode usar o "*".

;)

Edição feita por: aimola, 04/08/2006, 09:55.

Que os passos de hoje sejam maiores que os de ontem
e que os passos de amanhã sejam mais largos que os de hoje.

#6 asanoli

asanoli

    Novato no fórum

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

Posted 04/08/2006, 09:49

(order by cod_cad_trab asc)

não seria
ORDER BY COD_CAD ASC ???

onde vc colocou "WHERE COD_CAD = COD_CAD_TRAB" vc está comparando 2 campos da mesma tabela né??

;)



Fiz essa alteração e dá o erro aí de cima...

<_<

#7 rEd nEcK *

rEd nEcK *

    |̲̅<̲̅Θ̲̅>̲̅|

  • Usuários
  • 164 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/08/2006, 09:53

Agora quanto ao seu erro, pelo que percebi tá faltando um mysql_query() ali, tenta ai:

$sql=mysql_query("select * from trabalhos, cadastro where cod_cad=cod_cad_trab order by cod_cad_trab asc") or die(mysql_error());



Bom se retornar algum erro você avisa ai ;D
Abraços
~/ ArrastoMemo.Com - Porque ganhar não é tudo, tem que humilhar o adversário /~

#8 asanoli

asanoli

    Novato no fórum

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

Posted 04/08/2006, 10:06

Blz!

Faltou a query, mas já consertei... Tá aparecendo outro erro!

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\alexandreoliveira\help\novo_lista_trabalhos.php on line 21

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\alexandreoliveira\help\novo_lista_trabalhos.php on line 22

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\alexandreoliveira\help\novo_lista_trabalhos.php on line 23

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\alexandreoliveira\help\novo_lista_trabalhos.php on line 24

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\alexandreoliveira\help\novo_lista_trabalhos.php on line 25

O arquivo fotos.xml foi gerado com sucesso!

Ou seja, o arquivo é gerado, mas sem as variáveis...

Abs,

Alexandre

#9 rEd nEcK *

rEd nEcK *

    |̲̅<̲̅Θ̲̅>̲̅|

  • Usuários
  • 164 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 04/08/2006, 10:35

Bom dia ;D

No caso foi como eu falei, isso é erro na query, tem que dar um :

echo mysql_error();


Ele vai retornar o erro da query, ai a gente corrije ;D

Abraços
~/ ArrastoMemo.Com - Porque ganhar não é tudo, tem que humilhar o adversário /~

#10 asanoli

asanoli

    Novato no fórum

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

Posted 04/08/2006, 10:46

Bom dia ;D

No caso foi como eu falei, isso é erro na query, tem que dar um :

echo mysql_error();


Ele vai retornar o erro da query, ai a gente corrije ;D

Abraços



:(


Fiz e não deu certo! Quero dizer, aparece o mesmo erro que postei lá em cima.

<?

include ("conexao.php");

$sql="select * from trabalhos, cadastro where cod_cad=cod_cad_trab order by cod_cad asc";

$resultado=mysql_query ($sql) or die (mysql_error());

$linha=mysql_num_rows ($resultado);

if ($linha!="") {

$arquivo="fotos.xml";

$ponteiro=fopen($arquivo, "w");

fwrite($ponteiro, "<?xml version=\"1.0\"?>\r\n");
fwrite($ponteiro, "<jobs>\r\n");
for($i=0; $i<$linha; $i++) {

$id =mysql_result($sql,$i,"cod_cad_trab");
$oque =mysql_result($sql,$i,"oque_trab");
$pic01=mysql_result($sql,$i,"pic01_trab");
$pic02=mysql_result($sql,$i,"pic02_trab");
$pic03=mysql_result($sql,$i,"pic03_trab");

$conteudo ="<trabalhos>\r\n";
$conteudo .="<cod>$id</cod>\r\n";
$conteudo .="<oque>$oque</oque>\r\n";
$conteudo .="<pic01>$pic01</pic01>\r\n";
$conteudo .="<pic02>$pic02</pic02>\r\n";
$conteudo .="<pic03>$pic03</pic03>\r\n";
$conteudo .="</trabalhos>\r\n";

fwrite ($ponteiro, $conteudo);
}
fwrite ($ponteiro, "</jobs>");

fclose ($ponteiro);

echo "O arquivo <b>".$arquivo."</b> foi gerado com sucesso!";
}

?>

#11 M4rc0

M4rc0

    Turista

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

Posted 04/08/2006, 11:22

Curiosidade: você poderia me responder o porquê de estar salvando o nome das imagens pegas do banco em xml? ou pra quê?

só pra saber termos de estudos mesmo :)

#12 asanoli

asanoli

    Novato no fórum

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

Posted 04/08/2006, 13:09

Curiosidade: você poderia me responder o porquê de estar salvando o nome das imagens pegas do banco em xml? ou pra quê?

só pra saber termos de estudos mesmo :)



Turista,

Pra serem lidas e exibidas pelo Flash!

Abs,



Consegui gerar o XML. Só um novo probleminha...
Como faço pra agrupar o "<screen>" de cada projeto??? Tem a ver com concatenação e eu não tô acertando arrumar...

ERRADO:

<trabalhos>
<cod>7</cod>
<projeto>FOLDER</projeto>
<quem>Zeu Festas</quem>
<screen>teste.jpg</screen>
</trabalhos>

<cod>7</cod>
<projeto>MARCA</projeto>
<quem>Zeu Festas</quem>
<screen>novo.jpg</screen>
</trabalhos>

CERTO:

<cod>7</cod>
<projeto>MARCA</projeto>
<quem>Zeu Festas</quem>
<screen>novo.jpg</screen>
<screen>teste.jpg</screen>

</trabalhos>

O CODIGO:

<?

include ("conexao.php");

$sql="select * from cadastro, trabalhos, oque, screen where cod_cad=cod_cad_trab and cod_trab=cod_trab_src and cod_oque=oque_trab";

$resultado=mysql_query ($sql) or die ("Problema na consulta!");

$arquivo="fotos.xml";

$ponteiro=fopen($arquivo, "w");

fwrite($ponteiro, "<?xml version=\"1.0\"?>\r\n");
fwrite($ponteiro, "<jobs>\r\n");
while ($linha=mysql_fetch_array ($resultado)) {

$id =$linha["cod_cad"];
$quem =$linha["nome_cad"];
$oque =$linha["oque_oque"];
$screen=$linha["screen_src"];
$jpg=$linha["extensao_src"];


$conteudo ="<trabalhos>\r\n";
$conteudo .="<cod>$id</cod>\r\n";
$conteudo .="<projeto>$oque</projeto>\r\n";
$conteudo .="<quem>$quem</quem>\r\n";
$conteudo .="<screen>$screen$jpg</screen>\r\n";
$conteudo .="</trabalhos>\r\n";

fwrite ($ponteiro, $conteudo);
}
fwrite ($ponteiro, "</jobs>");

fclose ($ponteiro);

echo "O arquivo <b>".$arquivo."</b> foi gerado com sucesso!";

?>

Edição feita por: asanoli, 05/08/2006, 15:25.





1 user(s) are reading this topic

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

IPB Skin By Virteq