Creation d un fichier xml depuis donne mysql
audi68
Messages postés
567
Date d'inscription
Statut
Membre
Dernière intervention
-
lewis34 Messages postés 2557 Date d'inscription Statut Membre Dernière intervention -
lewis34 Messages postés 2557 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
J ai creer une gallerie photos en flash et j aimerais l alimenter par un chemin depuis ma base de donné
ex : ma base
id/ url / ..
1/ www.123.fr/im/1.jpg/...
2/.....
j aimerais donc que php me creer le fichier xml avec toutes les entrer de la table
Merci pour votre aide
J ai creer une gallerie photos en flash et j aimerais l alimenter par un chemin depuis ma base de donné
ex : ma base
id/ url / ..
1/ www.123.fr/im/1.jpg/...
2/.....
j aimerais donc que php me creer le fichier xml avec toutes les entrer de la table
Merci pour votre aide
Configuration: Vista
12 réponses
-
Si tu ne maîtrise pas le dom, tu n'es pas obligé de l'utiliser, cela a même peu d'intérêts pour construire un fichier xml.
Le xml ce n'est rien d'autres que des balises, du texte donc.
Par exemple pour une table article, on pourrait faire :
$sql = 'SELECT id, titre, contenu FROM article'; $query = mysql_query($sql) or exit(mysql_error()); $xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'; $xml .= '<articles>'; while( $row = mysql_fetch_assoc($query) ) { $xml .= '<article id="' . $row['id'] . '">'; $xml .= '<titre>' . htmlspecialchars($row['titre']) . '</titre>'; $xml .= '<contenu>' . htmlspecialchars($row['contenu']) . '</contenu>'; $xml .= '</article>'; } $xml .= '</articles>'; // Affichage header('Content-type: text/xml; charset=ISO-8859-1'); echo $xml;
Comme tu vois, rien de compliqué. -
merci de ta reponse
Par contre la je bloque
<?php
require "connect.php";
$reponse = mysql_query("SELECT * FROM t2 ")or die(mysql_error()); // Requête SQL
// On fait une boucle pour lister tout ce que contient la table :
while ($donnees = mysql_fetch_array($reponse) )
{
$dom = new DomDocument();
$dom->save('test1.xml');
//??//
}
?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IMAGES>
<IMG urlimage="images/miniature/traditionnel/im_181.jpg" description="Description1"/>
<IMG urlimage="images/miniature/traditionnel/im_173.jpg" description="Description2"/>
......
</IMAGES>
je ne vois pas comment faire pour ecrire l url et la descritpion -
J'ai fait un script (assez complexe certes) pour justement gerer des photos dans une animations flash, si tu veut je t'envoie mes sources, .
Le principe est somme toute assez simple, tu upload tes photos, et a chaque fois ca te recree ton xml de reference. deja pas besoin de base de données tout est dans l'xml
Ca parait simple comme ça.. non .. ;-) -
Bonjour,
Tu peux t'aider de ce tuto pour créer ton fichier XML:
https://eusebius.developpez.com/php5dom/
après il suffit de combiner xml et les données récupérées de la base. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
merci de ta reponse
J aime bien ton "juste" mais je debute en php je n es que quelque base
Connais tu pas un tuto ou un exmeple?
merci -
Pour bien apprendre le PHP tu peux lire ce tuto:
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
Et plus particulièrement les parties traitant des bases de données:
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees#ss_part_2
-> Dans la boucle while de la récupération des données, au lieu d'afficher les données, tu les inscris dans le fichier XML, en t'aidant du tuto DOM-XML que je t'ai donné dans mon 1er message. -
ah oui effectivement c est tres simple merci pour l exemple
Mais la le fichier ne se creer pas ou bien?
je vais tester -
Pour enregistrer le fichier, utilise file_put_contents()
;) -
ok mais je le met ou? a la place de affichage?
Pour l instant il me met une erreur à l'affichage
cele-ci
Warning: Cannot modify header information - headers already sent by (output started at /homez.232/gautomob/www/xml.php:9) in /homez.232/gautomob/www/xml.php on line 29 -
up personne Merci
-
L'erreur du header est une erreur fréquente, en faisant une petite recherche sur internet tu trouveras la solution.
Ensuite, pour le file_put_contents, un saut vers la documentation php fournira réponse à ta question.-
merci de ta reponse
J ai deja fait la recherche mais je ne sais pas quoi mettre dans la formule
int file_put_contents ( string filename , mixed data , int flags , resource context )
c est bien cela?
Pour l autre erreur je vais chercher- j essaie depuis avant mais imposible toujours une erreur a cette ligne
$num_bytes = file_put_contents("example.xml", $xml);
<?php
require "connect.php";
$reponse = mysql_query("SELECT * FROM voiture ")or die(mysql_error()); // Requête SQL
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xml .= '<articles>';
while( $row = mysql_fetch_assoc($reponse) )
{
$xml .= '<article id="' . $row['idd'] . '">';
$xml .= '<titre>' . htmlspecialchars($row['marque']) . '</titre>';
$xml .= '<contenu>' . htmlspecialchars($row['modele']) . '</contenu>';
$xml .= '</article>';
}
$xml .= '</articles>';
$num_bytes = file_put_contents("example.xml", $xml);
if( $num_bytes === false ) {
// file wasn't written successfully
echo 'Error writing file';
}
else {
echo $num_bytes . ' bytes were written';
}
// Affichage
echo $xml;
?>
merci de ton aide
-
-
pas de soucis je te les envoie ce WE ;-)