Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
PHP + SQL + XML
13-04-2010, 15:58 (Esta mensagem foi modificada pela última vez a: 13-04-2010 16:42 por mpmont.)
Mensagem: #1
PHP + SQL + XML
boa tarde,

estou a tentar fazer uma pequena aplicação em flash que vai buscar todo o conteúdo a xml.

Então, agora pensei em fazer um pequeno backoffice para a coisa e estou a fazer uns testes para ver se consigo por a coisa a funcionar, mas até agora sem sucesso.

Pelo que li a melhor maneira para fazer isto é ter uma base de dados que basicamente tem a estrutura do xml.

por exemplo tenho o xml articles que pode ser algo como:

<articles>
<article>
<id>1</id>
<title>asd</title>
<intro>asdasd</intro>
<content>asdasd</content>
<date>asdasd</date>
</article>
</articles>

e então terei uma tabela chamada articles que tem esta estrutura.

Depois sempre que vou submeter um artigo novo por um formulário em php tenho que ir buscar os dados à base de dados e re-escrever o ficheiro articles.xml.

Na parte do inserir na base de dados os novos dados, não tenho qualquer problema, no entanto é na parte do escrever de novo o xml é que as coisas se complicam.

aqui vai o que consegui fazer até agora:

Código PHP:
//vai buscar conteudo à bd
    
$query "SELECT * FROM articles";
    
$get_articles mysql_query($query$connection);
    
confirm_query($get_articles);

//vai buscar o ficheiro xml
    
$xml simplexml_load_file("articles.xml");

while (
$row mysql_fetch_array($get_articles)){    
         
$article $xml  ->articles->addChild('article');//linha 31
         
$article->addChild('id'utf8_encode($row ['idarticle']));//linha 32
         
$article->addChild('title'utf8_encode($row ['title']));
         
$article->addChild('intro'utf8_encode($row ['intro']));
         
$article->addChild('content'utf8_encode($row ['content']));
         
$article->addChild('date'utf8_encode($row ['date']));
    }
    
$xml->asXML("articles.xml"); 

por agora recebo dois erros:

Warning: SimpleXMLElement::addChild() [simplexmlelement.addchild]: Cannot add child. Parent is not a permanent member of the XML tree in D:\wamp\www\xmlteste\addnew.php on line 31

Fatal error: Call to a member function addChild() on a non-object in D:\wamp\www\xmlteste\addnew.php on line 32

alguém me pode ajudar??

não tenho experiência nenhuma em trabalhar com php e XML.. a única experiência que tenho é de php + SQL e mesmo assim não é assim tanta.
ok, ja consigo adicionar a nova info no ficheiro xml:

fiz a seguinte modificação:
Código PHP:
$xml simplexml_load_file("articles.xml"); 
    
$xml->articles[0] = NULL;
    
$sxe = new SimpleXMLElement($xml->asXML());
    while (
$row mysql_fetch_array($get_articles)){    
         
$article $xml  ->addChild('article');
         
$article->addChild('id'utf8_encode($row ['idarticle']));
         
$article->addChild('title'utf8_encode($row ['title']));
         
$article->addChild('intro'utf8_encode($row ['intro']));
         
$article->addChild('content'utf8_encode($row ['content']));
         
$article->addChild('date'utf8_encode($row ['date']));
    }
    
$xml->asXML("articles.xml");
    
gravarXML($xml); 

como podem ver adicionei na linha 2 $xml->articles[0] = NULL; supostamente isto deveria apagar todo o conteudo do node articles, no entanto isso não acontece...

já só falta isto pois agora quando escrevo o xml ele nao apaga o conteudo que já lá estava e fica a dobrar...
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
PHP + SQL + XML - mpmont - 13-04-2010 15:58
RE: PHP + SQL + XML - mpmont - 13-04-2010, 17:30
RE: PHP + SQL + XML - WebDevXtream - 14-04-2010, 12:20
RE: PHP + SQL + XML - mpmont - 14-04-2010, 17:22
RE: PHP + SQL + XML - WebDevXtream - 14-04-2010, 17:40

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)