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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 470 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

quynhhoa
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.
bouazizwajdi
Messages postés
4
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 novembre 2010
-
comme ca:
<? echo " bonjour "; ?>
bouazizwajdi
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
mmconcept
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.
superbaloo78
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 ?

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.