EXPORTER UNE TABLE MYSQL VERS UN FICHIER XML AVEC PHP

Signaler
Messages postés
715
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
10 septembre 2009
-
Messages postés
8
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19763-exporter-une-table-mysql-vers-un-fichier-xml-avec-php

Messages postés
8
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008

a mr.grandvizir
j'ai testé ca mais ca marche pas
Messages postés
1
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
22 juin 2009

super cette source, facile à comprendre et modifier selon l'arborescence souhaité
Messages postés
13
Date d'inscription
mercredi 20 avril 2005
Statut
Membre
Dernière intervention
7 juillet 2008

Comment on fait pour la requette $q? merci
Messages postés
2
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
22 février 2008

Et point de vue Accent ? c'est bon? car l'exporte dans le fichier xml et qd je veux le lire dans mon flash, les accents sautent !
cela vient de l'encodage ou de mon flash?
Messages postés
1
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
24 juillet 2007

Nickel ce pti bout de code... maintenant, à chaque fois que j'ajoute un article sur mon blog, le flux RSS se mets automatiquement... C'est parfait...
Mon blog : mouchel.philippe.free.fr
Messages postés
14
Date d'inscription
lundi 8 janvier 2007
Statut
Membre
Dernière intervention
1 juin 2007

je ne comprends pas d'ou ça viens mais j'ai de balises qui se répètent à des endroits ou elles n'ont pas lieu d'etre.

<descripteur>
<nom>Cls</nom>
<comment>closed limit switch</Comment></comment>
</descripteur>

donc comme je viens de le dire, je ne comprends pas s'ou viens cette balise </Comment>...

merci d'avance.
Messages postés
28
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
30 mars 2012

Salut
J'ai essayé ton code et malheureusement. J'ai les erreurs suivante:

Warning: domxml_open_file(): I/O in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 2

Warning: domxml_open_file(): warning : in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 2

Warning: domxml_open_file(): failed to load external entity "../xml/carnet.xml" in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 2

Warning: domxml_xslt_stylesheet_file(): I/O in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 3

Warning: domxml_xslt_stylesheet_file(): warning : in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 3

Warning: domxml_xslt_stylesheet_file(): failed to load external entity "../xml/carnet.xsl" in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 3

Fatal error: Call to a member function on a non-object in c:\program files\easyphp1-8\www\xml\phpxml6\ihm\carnet.php on line 4


Peux tu me dire s'il n'y a pas un paramètre supplémentaire à configurer dans easyphp?
J'ai déjà rajouter les extensions :
- php_domxml
- php_xmlrpc
- php_xslt

J'ai remarqué une chose, si je mets le chemin réel du fichier xml, ça marche.
Comment peut on le faire avec un chemin absolu?

Merci davance
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
14
Désolé de travailler au goutte à goutte, mais je découvre petit à petit les secrets bizarres du XML. Pour éviter d'enregistrer sur le serveur, allez voir: http://www.phpcs.com/code.aspx?id=13282
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
14
Je me suis renseigné et pour éveiller aux problèmes d'exportation, je vous conseille le lien suivant afin d'utiliser les fonctions HTMLSPECIALCHARS et ADDSLASHES.
http://www.phpcs.com/forum.v2.aspx?ID=495433

Et puis, au lieu de faire un lien en bas de page, pourquoi ne pas rediriger l'utilisateur.

Au final, on obtient ceci:

<?php
function Display($Value) {
return htmlspecialchars(addslashes($Value));
}
/* CONNEXION: $q étant le résultat d'une requète */
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?><carnet>';
while ($dat = mysql_fetch_array($q)) {
$xml .= '';
$xml .= '<nom>'.Display($dat['nom']).'</nom>';
$xml .= ''.Display($dat['prenom']).'

';
$xml .= ''.Display($dat['age']).'';
$xml .= '

';
}
$xml .= '</carnet>';

$Fichier = fopen('carnetMysqlToXml.xml', 'a+');
fputs($Fichier, $xml);
fclose($Fichier);

header('Location: carnetMysqlToXml.xml');
?>

Le soucis est qu'il faudra faire du ménage après sur le serveur... Au final, avec ma proposition, on a un truc qui ne bugge pas. En espérant que phpMyAdmin 253 aura été corrigé...
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
14
Ce RSS est certes enregistré sur le serveur, mais il faudrait le faire télécharger, puis le supprimer. Au niveau de la taille des XML, ça risque de flooder un max si la base est grosse... C'est effectivement un bout de code.
Messages postés
9
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
28 novembre 2004

salut a tous,comment faire pour obtenir ceci??,

<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>

<travail photo="g1.jpg>
<commentaires></commentaires>
</travail>



car je charge mes photo dans une bd afin de deja la ressortir en php,j'aimerais employé la meme bd pour ressortir les données en xml et pouvoir les mettre dans un diâporama en flash.Mais il faut que mon xml ressortant de ma bd soit absolument comme cela et qu'il puisse se mettre a jour a chaque upload dans la bd.Je sais pas si je suis compréhensible dans mes propos lolll j'en suis désolé.Dés que j'ai la reponse,je mettrais ma première sources en fla avec un diapo en fla,un en php avec une bd,idéal pour les sites en deux parties.Merci a tous de votre aide.
Messages postés
3
Date d'inscription
mercredi 15 septembre 2004
Statut
Membre
Dernière intervention
28 octobre 2004

Bonjour,

En fait, voici la réponse que j'ai pu obtenir :

$xml .= '';
}
$xml .= '

';

Ce qu'il y a d'assez extraordinaire, c'est que si après avoir lancé la page en php, si j'ai le malheur de la réactualiser, le fichier php se transforme et devient invalide :

$xml .= '';
}
$xml .= '

';

Des crochets et doubles côtes apparaissent à la fin des lignes. Il faut donc faire très attention à l'actualisation.

De plus, si j'utilise l'encodage XML UTF-8, le fichier n'est pas créé. Ce qui me pose des problèmes pour les accents.

Si quelqu'un a la solution ...
Sinon, ce code marche très bien.

Sophie
Messages postés
822
Date d'inscription
vendredi 25 mai 2001
Statut
Modérateur
Dernière intervention
1 août 2014

$xml .= ' ne fonctionne pas ?-)
Messages postés
3
Date d'inscription
mercredi 15 septembre 2004
Statut
Membre
Dernière intervention
28 octobre 2004

Bravo pour ce script génial.
Comment dois-je faire pour générer un fichier XML dans le cas où serait un élément et où les informations nom, prenom, age seraient des attributs de ?
Exemple :
<carnet>

</carnet>

En effet, l'intérêt d'utiliser des attributs est qu'ils sont bien mieux "lus" dans une application Flash.
Merci cent mille fois d'avance pour votre aide.
Messages postés
715
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
10 septembre 2009

J'adore les devinettes, lol
OK, Faut juste que je respecte la DTD RSS 2.0, c'est dans mes cordes....

Merci A+
aFaD
Messages postés
822
Date d'inscription
vendredi 25 mai 2001
Statut
Modérateur
Dernière intervention
1 août 2014

RSS = XML

Réfléchit à ce que je viens de dire ;-)
Messages postés
715
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
10 septembre 2009

Salut, je suis un peu neophyte en php, est ce que de la même manière, je peux écrire un flux RSS avec PHP (à partir de news écrite dans une table MySQL)...

Qu'est ce qui change,la syntaxe du xml, c'est tout ??

A+
aFaD