Convertir rapidement une table mysql en fichier xml sans preciser les champs

Contenu du snippet

Voici un petit script qui permet de créer rapidement des fichiers xml contenant tous les champs des tables converties.

Source / Exemple :


<?php
/* SCRIPT PERMETTANT DE CONVERTIR UNE TABLE MYSQL EN FICHIER XML SANS PRECISER LES CHAMPS */

// INFOS DE CONNEXION A LA BDD

$Sbddhost = 'localhost';
$Sbdduser = 'utilisateur';
$Sbddpass = 'mot_de_passe';
$Sbddbase = 'nom_base';
$Sbdderreur = 'La base est inaccessible.';

$Sbddtable = 'nom_table'; // 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 = 'mesfichiers/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){
$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; }

?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.