EXPORTER UNE TABLE MYSQL VERS UN FICHIER XML AVEC PHP
afad
Messages postés715Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention10 septembre 2009
-
26 avril 2004 à 15:25
ouassilachraf
Messages postés8Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention28 mai 2008
-
24 juil. 2009 à 01:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ouassilachraf
Messages postés8Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention28 mai 2008 24 juil. 2009 à 01:44
a mr.grandvizir
j'ai testé ca mais ca marche pas
CasT0r66
Messages postés1Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention22 juin 2009 22 juin 2009 à 20:39
super cette source, facile à comprendre et modifier selon l'arborescence souhaité
game50
Messages postés13Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention 7 juillet 2008 21 avril 2008 à 13:52
Comment on fait pour la requette $q? merci
lecappa
Messages postés2Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention22 février 2008 22 févr. 2008 à 12:17
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?
cs_willink
Messages postés1Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention24 juillet 2007 24 juil. 2007 à 19:02
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
crusty8x
Messages postés14Date d'inscriptionlundi 8 janvier 2007StatutMembreDernière intervention 1 juin 2007 31 mai 2007 à 09:32
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.
donc comme je viens de le dire, je ne comprends pas s'ou viens cette balise </Comment>...
merci d'avance.
DrChal
Messages postés28Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention30 mars 2012 1 mars 2007 à 14:14
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
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 26 juin 2005 à 15:31
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
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 25 juin 2005 à 18:49
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']).'
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é...
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 24 juin 2005 à 16:46
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.
sniperbe
Messages postés9Date d'inscriptionvendredi 10 octobre 2003StatutMembreDernière intervention28 novembre 2004 27 nov. 2004 à 21:37
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.
cs_sophie13
Messages postés3Date d'inscriptionmercredi 15 septembre 2004StatutMembreDernière intervention28 octobre 2004 28 oct. 2004 à 10:58
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
cs_OriOn
Messages postés822Date d'inscriptionvendredi 25 mai 2001StatutModérateurDernière intervention 1 août 2014 28 oct. 2004 à 09:05
$xml .= ' ne fonctionne pas ?-)
cs_sophie13
Messages postés3Date d'inscriptionmercredi 15 septembre 2004StatutMembreDernière intervention28 octobre 2004 27 oct. 2004 à 17:06
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.
afad
Messages postés715Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention10 septembre 2009 27 avril 2004 à 09:04
J'adore les devinettes, lol
OK, Faut juste que je respecte la DTD RSS 2.0, c'est dans mes cordes....
Merci A+
aFaD
cs_OriOn
Messages postés822Date d'inscriptionvendredi 25 mai 2001StatutModérateurDernière intervention 1 août 2014 26 avril 2004 à 21:05
RSS = XML
Réfléchit à ce que je viens de dire ;-)
afad
Messages postés715Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention10 septembre 2009 26 avril 2004 à 15:25
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 ??
24 juil. 2009 à 01:44
j'ai testé ca mais ca marche pas
22 juin 2009 à 20:39
21 avril 2008 à 13:52
22 févr. 2008 à 12:17
cela vient de l'encodage ou de mon flash?
24 juil. 2007 à 19:02
Mon blog : mouchel.philippe.free.fr
31 mai 2007 à 09:32
<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.
1 mars 2007 à 14:14
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
26 juin 2005 à 15:31
25 juin 2005 à 18:49
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é...
24 juin 2005 à 16:46
27 nov. 2004 à 21:37
<?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.
28 oct. 2004 à 10:58
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
28 oct. 2004 à 09:05
27 oct. 2004 à 17:06
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.
27 avril 2004 à 09:04
OK, Faut juste que je respecte la DTD RSS 2.0, c'est dans mes cordes....
Merci A+
aFaD
26 avril 2004 à 21:05
Réfléchit à ce que je viens de dire ;-)
26 avril 2004 à 15:25
Qu'est ce qui change,la syntaxe du xml, c'est tout ??
A+
aFaD