Extraire des données d'une base de données dans un fichier xml
Résolu
sarra1988
Messages postés
7
Statut
Membre
-
Fallentree Messages postés 2445 Statut Membre -
Fallentree Messages postés 2445 Statut Membre -
Je suis débutante dans le développement d'une application web avec php5 et je veux extraire des données stockées dans ma base de données nommée artisanat dans un fichier xml, mais rien ne s'affiche.
Voici mon code de connexion.php:
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=artisanat', 'root', '',
$pdo_options);
$reponse = $bdd ->query('SELECT * FROM artisants where activite="tissage" ');
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("nom", utf8_encode($donnees["nom"]));
$newnode->setAttribute("prenom", utf8_encode($donnees["prenom"]));
$newnode->setAttribute("adresse", utf8_encode($donnees["adresse"]));
$newnode->setAttribute("ville",utf8_encode($donnees["ville"]));
$newnode->setAttribute("GSM",utf8_encode($donnees["GSM"]));
$newnode->setAttribute("email",utf8_encode($donnees["email"]));
$newnode->setAttribute("activite",utf8_encode($donnees["activite"]));
$newnode->setAttribute("type-activite",utf8_encode($donnees["type-activite"]));
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
echo $dom->saveXML();
?>
Voici mon code de connexion.php:
<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=artisanat', 'root', '',
$pdo_options);
$reponse = $bdd ->query('SELECT * FROM artisants where activite="tissage" ');
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("nom", utf8_encode($donnees["nom"]));
$newnode->setAttribute("prenom", utf8_encode($donnees["prenom"]));
$newnode->setAttribute("adresse", utf8_encode($donnees["adresse"]));
$newnode->setAttribute("ville",utf8_encode($donnees["ville"]));
$newnode->setAttribute("GSM",utf8_encode($donnees["GSM"]));
$newnode->setAttribute("email",utf8_encode($donnees["email"]));
$newnode->setAttribute("activite",utf8_encode($donnees["activite"]));
$newnode->setAttribute("type-activite",utf8_encode($donnees["type-activite"]));
}
$reponse->closeCursor(); // Termine le traitement de la requête
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
echo $dom->saveXML();
?>
3 réponses
-
-
https://www.php.net/manual/fr/domdocument.createattribute.php
$newnode = $parnode->appendChild($node); en fin des création des attributs du noeud ??
pareil pour le noeud apres d'ajout ....
$parnode = $dom->appendChild($node); a la fin du while -
Merci pour votre aide, mais je ne comprends où est le problème exactement.
Pouvez vous me clarifier un peu le problème?
Merci pour votre soutien.-
appendchild ne se fait pas après la création du noeud mais après toute les ajouts des attributs ou noeud secondaire ....
dans ton code
tu peux pas placer appendChild ici tu modifies $node par la suite
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
fais le apres tes modifs...
-