Geração de XML com PHP a partir de uma base de dados MySQL

Criando a base de dados no MySQL
Parte 1 – Base SQL
Primeiramente, iremos criar uma tabela simples no MySQL.
A tabela SQL criada abaixo é apenas um exemplo ilustrativo.
Tente algo do tipo:

CREATE TABLE `agenda_telefonica` (
`id_agenda` int(11) NOT NULL auto_increment,
`nome` varchar(80) NOT NULL default "",
`email_primario` varchar(80) NOT NULL default "",
`email_secundario` varchar(80) NOT NULL default "",
`telefone_residencial` varchar(20) NOT NULL default "",
`telefone_celular` varchar(20) NOT NULL default "",
PRIMARY KEY (`id_agenda`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;
INSERT INTO `agenda_telefonica` VALUES
(1, "Fulano", "fulano@blabla.com", "fulano2@algum.com", "11111111", "111111111");
INSERT INTO `agenda_telefonica` VALUES
(2, "beltrano", "beltrano@blabla.com", "beltrano2@algum.com", "222111", "222111");

Obs: experimente criar uma interface em HTML 4.01 com CSS.
Parte 2 – Geração de XML
Usando PHP para geração do XML a partir da base SQL
Agora que temos nossa incrível base de dados, vamos lá:

<?php
/*
gerador XML a partir de uma Base MySQL
marcelo santos araujo
marcelo[nospam]orionlab.net
*/
$conexao = @mysql_connect("host","usuario","senha");
$db = @mysql_select_db("database");
$consulta = @mysql_query("SELECT * FROM agenda_telefonica;");
$manipulador_arq = fopen("/caminho","w+");
@fwrite($manipulador_arq,"<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n\n\n<agenda_telefonica>");
while($exibir = @mysql_fetch_array($consulta))
{
$xml = "\n\n<contato>\n";
$xml .= "<nome>$exibir[1]</nome>\n";
$xml .= "<email_primario>$exibir[2]</email_primario>\n";
$xml .= "<email_secundario>$exibir[3]</email_secundario>\n";
$xml .= "<telefone_residencial>$exibir[4]</telefone_residencial>\n";
$xml .= "<telefone_celular>$exibir[5]</telefone_celular>\n";
$xml .= "\n</contato>";
@fwrite($manipulador_arq,$xml);
}
@fwrite($manipulador_arq,"\n\n</agenda_telefonica>");
?>

Passos do script:
1 – conexão MySQL
2 – criação do arquivo agenda_telefonica.xml
3 – Escrita da “tag” <agenda_telefonica>
4 – Geração do XML lendo da base SQL
5 – Escrita da “tag” final </agenda_telefonica>
Resultado Final:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<agenda_telefonica>
<contato>
<nome>Marcelo Santos Araujo</nome>
<email_primario>marcelo@orionlab.net</email_primario>
<email_secundario>nenhum</email_secundario>
<telefone_residencial>XXXXXXXX</telefone_residencial>
<telefone_celular>XXXXXXXXX</telefone_celular>
</contato>
</agenda_telefonica>

Agradeço a sua leitura.