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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 826 fois - Téléchargée 26 fois

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

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
10 août 2006

Cher MMCONCEPT
Aurions nous le plaisir de voir un jour le code PHP pour exporter la base mysql (en donnant juste le nom de la base ) vers une base XML complète sans avoir à donner le nom des tables car imaginons une base avec 1000 tables cela veut dire qu'on doit avoir milles petits programmes ?
Ceci dit , ton code est très bien , j'ai fait tourner .. c'est nickel . Je donne 10.
Messages postés
4
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 novembre 2010

comme ca:
<? echo " bonjour "; ?>
Messages postés
4
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 novembre 2010

lorsua j'inserre du code dans mon forum que j'ai ceer moi meme le code n'apparait pas il va etre lu par le navigateur. je fait quoi pour l'afficher
Messages postés
2
Date d'inscription
jeudi 18 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006

$req2 = $req; ne fonctionne pas.
C'est pour cela que j'ai doublé le mysql_query
Il y a certainement une solution moins gourmande mais pour l'instant je ne la connais pas.
Messages postés
87
Date d'inscription
vendredi 29 août 2003
Statut
Membre
Dernière intervention
19 mai 2006

# $req = mysql_query($sql,$mysql_link);
# $req2 = mysql_query($sql,$mysql_link);

sont reelements utiles ?
mettre $req2 = $req; ca serait pas mieux ?
Afficher les 10 commentaires

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.