Creation d un fichier xml depuis donne mysql

audi68 Messages postés 626 Statut Membre -  
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
A voir également:

12 réponses

P@t@ch0n Messages postés 603 Statut Membre 85
 
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é.
3
audi68 Messages postés 626 Statut Membre 9
 
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
1
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
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 .. ;-)
1
Danix
 
Salut Lewis34, moi j'ai le même problème que le garçon en haut. J'ai lu ton message et j'aimerais bien, stp, avoir tes sources, si possible.

montreal_dani@hotmail.com

Merci d'avance,
DAni
0
danizitz
 
Salut Lewis34, j'ai le meme probleme du garçon en haut.
J'aimerais bien avoir tes sources, stp. Est-ce que c'est possible?

montreal_dani@hotmail.com

Merci d'avance,
Dani
0
M@dien Messages postés 451 Statut Membre 74
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
audi68 Messages postés 626 Statut Membre 9
 
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
0
M@dien Messages postés 451 Statut Membre 74
 
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.
0
audi68 Messages postés 626 Statut Membre 9
 
ah oui effectivement c est tres simple merci pour l exemple

Mais la le fichier ne se creer pas ou bien?

je vais tester
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Pour enregistrer le fichier, utilise file_put_contents()

;)
0
audi68 Messages postés 626 Statut Membre 9
 
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
0
audi68 Messages postés 626 Statut Membre 9
 
up personne Merci
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
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.
0
audi68 Messages postés 626 Statut Membre 9
 
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
0
P@t@ch0n Messages postés 603 Statut Membre 85 > audi68 Messages postés 626 Statut Membre
 
Oui, prends en exemple les utilisations décrites dans la doc,
0
audi68 Messages postés 626 Statut Membre 9 > P@t@ch0n Messages postés 603 Statut Membre
 
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
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
pas de soucis je te les envoie ce WE ;-)
0