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   -
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
Configuration: Vista

12 réponses

  1. 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
  2. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   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
  3. 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
    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
    2. 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
  4. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   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
  7. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   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
  8. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   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
  9. P@t@ch0n Messages postés 603 Statut Membre 85
     
    Pour enregistrer le fichier, utilise file_put_contents()

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