Export MySQL en PHP vers XML

Export de MySQL avec PHP vers un fichier XML.

 

Exemple d'export numéro 1

<?php
// Déclaration de l'entête en UTF-8
header("Content-Type: text/html; charset=utf-8");

// Lien vers le script de connexion à la base de données.
require '../../inc/connexion.inc.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<h1 align="center">Export des inscrits à la Newsletter vers un fichier XML</h1>
<br/>

<?php
// Sélection de toute la table NEWSLETTER.
$sql = "SELECT * FROM NEWSLETTER";
$req = mysql_query($sql) or die(mysql_error());

$xmldebut = '<?xml version="1.0" encoding="ISO-8859-1"?><NewsletterLPATC8>';

// On boucle pour lire l'ensemble des lignes.
// Avec mysql_fetch_array, on déclare des variables qui prennent la valeur de $row
while ($row = mysql_fetch_array($req)) {

// $row[\"0\"] est le premier champ de la table ainsi de suite.
// $a devrait donc s'appeler dans mon cas 'NumAutoNewsLetter' mais je ne le fais pas pour gagner du temps.
// Adapter le nombre de lignes.
$a = $row["0"] ; $b = $row["1"] ; $c = $row["2"] ; $d = $row["3"] ; $e = $row["4"] ; $f = $row["5"] ; $g = $row["6"] ; $h = $row["7"] ; $i = $row["8"] ; $j = $row["9"] ; $k = $row["10"] ; $l = $row["11"] ; if (!empty($c)) {
// Ici, si $c (Le champ NewsLetterMail) n'est pas vide, on renseigne la variable $xml qui va être écrite dans le fichier XML. // Adapter l'affichage pour le rendu voulu. $xml .= '<Inscrit>'; $xml .= '<id>'.$a.'</id>'; $xml .= '<mail>'.$c.'</mail>'; $xml .= '<recevoir>'.$b.'</recevoir>'; $xml .= '<nom>'.$d.'</nom>'; $xml .= '<prenom>'.$e.'</prenom>'; $xml .= '<societe>'.$f.'</societe>'; $xml .= '<adresse>'.$g.'</adresse>'; $xml .= '<codepostal>'.$h.'</codepostal>'; $xml .= '<ville>'.$i.'</ville>'; $xml .= '<civilite>'.$j.'</civilite>'; $xml .= '<fixe>'.$k.'</fixe>'; $xml .= '<portable>'.$l.'</portable>'; $xml .= '</Inscrit>'; }} $xmlfin .= '</NewsletterLPATC8>'; $fp = fopen("InscritsNewsLetter.xml", 'w+'); fputs($fp, $xmldebut); fputs($fp, "\n"); fputs($fp, $xml); fputs($fp, "\n"); fputs($fp, $xmlfin); fclose($fp); echo 'Export XML effectue !<br/><br/><a href="/InscritsNewsLetter.xml">Voir le fichier</a>'; ?> </body></html>

 

Exemple d'export numéro 2

Créer la table MySQL avec le code SQL suivant
CREATE TABLE j25_users (
   username varchar(255),
   password varchar(255),
   email varchar(255),
)

Ouvrir une connexion vers la base de données mysql
<?php
// Définir les variables de connexion :
$user = "UTILISATEUR DE LA BASE DE DONNEES";
$passwd = "MOT DE PASSE DE LA BASE DE DONNEES";
$host = "IP DU SERVEUR OU LOCALHOST";
$bdd = "NOM DE LA BASE DE DONNEES";
$table_connexion = "PREFIXE_JOOMLA_users";

// Connexion au serveur MySql :
$dsn = "mysql:host=$host;dbname=$bdd;port=3306;charset=utf8";

try {
$pdo = new PDO($dsn, "$user" , "$passwd");
}

catch (PDOException $exception) {
mail(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.', 'PDOException', $exception->getMessage());
exit('Erreur de connexion à la base de données.');
}
?>
 
Tester la connexion et lister les éléments présents dans les colonnes de la table
// Définir et afficher la requête :
$q = "SELECT username, password, email FROM $table_connexion";
echo "Afficher la requête :<br/>$q<br/><br/>";

// Afficher le rendu de la requête :
echo "<br/><br/>Afficher le rendu de la requête :<br/>";
$stmt = $pdo->prepare($q);
 
// Execution
$stmt->execute( );
 
// fetchAll() car PLUSIEURS LIGNES récupérées
$rowAll = $stmt->fetchAll(PDO::FETCH_BOTH);
 
foreach( $rowAll as $row )
{
echo 'Utilisateurs : '.$row['username'].' - Mot de passe : '.$row['password'].' - email : '.$row['email'].'<br />';
}

Générer un fichier XML
// UTF-8 --- ISO-8859-1
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'.'<carnet>';
		foreach( $rowAll as $row ) {
			$xml .= '<personne>';
			$xml .= '<login>'.$row["username"].'</login>';
			$xml .= '<password>'.$row["password"].'</password>';
			$xml .= '<email>'.$row["email"].'</email>';
			$xml .= '</personne>';
		}
		$xml .= '</carnet>';

echo "ECRITURE DANS LE CARNET";
		
		$fp = fopen("carnetMysqlToXml.xml", 'w+');
		fputs($fp, $xml);
		fclose($fp);
		
		echo 'Export XML effectue !<br/><a href="/carnetMysqlToXml.xml">Voir le fichier</a>';
?>

« La meilleure forteresse des tyrans c’est l’inertie des peuples. »
Machiavel

Visionduweb - La Réponse Collaborative - 2002 / 2019

Condition d'utilisation du site Visionduweb

Vous êtes soumis au règlement suivant et à ce titre ni l'administrateur ni l'hébergeur ne pourraient ni ne seraient tenu pour responsable de vos actes.
Vous ne devez en aucun cas utiliser les informations présentes sur Visionduweb pour nuire à autrui ou à un système informatique.

La licence CC BY-NC-ND 4.0 est attribuée au contenu rédigé par Visionduweb sur les domaines suivants :
www.visionduweb.com www.visionduweb.eu www.visionduweb.fr www.visionduweb.info

Les profils utilisés par Visionduweb : Anonymous, Visionduweb, Zer00CooL

Le serveur et les services sont accessibles.
------------------------------------
------------

Chercher dans ce site

Menu de connexion