source: http://www.phpcs.com/codes/CONVERTIR-RAPIDEMENT-TABLE-MYSQL-FICHIER-XML-SANS-PRECISER_37647.aspx
<?php /* SCRIPT PERMETTANT DE CONVERTIR UNE TABLE MYSQL EN FICHIER XML SANS PRECISER LES CHAMPS */ // INFOS DE CONNEXION A LA BDD $Sbddhost = 'localhost'; $Sbdduser = 'xxx'; $Sbddpass = 'xxx'; $Sbddbase = 'xxx'; $Sbdderreur = 'La base est inaccessible.'; #$Sbddtable = 'chronologie'; // TABLE A CONVERTIR $Sbddtable = 'chronologie'; // TABLE A CONVERTIR $Sdatalimit = 0; // LIMIT DE DONNEES A CONVERTIR ( 0 = toutes ) // DEFINIR L'ORDRE DE LECTURE (NECCESSITE DE CONNAITRE LE CHAMPS DE REFERENCE) // LAISSER VIDE SI AUCUN ORDRE A DEFNIR $dataorder = ''; // EX: ID DESC $filename = 'fichier.xml'; // REPERTOIRE ET NOM DU FICHIER $fileerreur = 'Le fichier ne peut être créé vérifier les droits du répertoire'; // CONNEXION ET LECTURE TABLE if(!$mysql_link = @mysql_connect($Sbddhost,$Sbdduser,$Sbddpass)) { echo $Sbdderreur; exit; } $sql = "SELECT * FROM $Sbddbase.$Sbddtable"; if(!empty($dataorder)) $sql .= " ORDER BY $dataorder"; if($Sdatalimit >= 1) $sql .= " LIMIT $Sdatalimit"; $req = mysql_query($sql,$mysql_link); $req2 = mysql_query($sql,$mysql_link); mysql_close($mysql_link); // FERME LA CONNEXION DBB // CONVERSION $file = '<?xml version="1.0" encoding="iso-8859-15"?><rss version="2.0"><channel>'; while($row = mysql_fetch_row($req)) { $file .= '<item>'; $i = 0; foreach($row as $r){ $r=trim($r); $r=html_entity_decode($r); $r=htmlspecialchars_decode($r); $file .= '<##'.$i.'##>'.trim($r).'</##'.$i.'##>'; // CREATION DE TAGS ++$i; } $file .= '</item>'; } $file .= '</channel></rss>'; $i = 0; while($field = mysql_fetch_field($req2)) { $file = ereg_replace("##$i##",$field->name,$file); // REMPLACE LES TAGS ++$i; } // CREATION DU FICHIER if($fp = @fopen($filename,"w")){ fputs($fp,$file); fclose($fp); echo '<a href='.$filename.'>Afficher '.$filename.'</a>'; }else{ echo $fileerreur; } ?>