IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formatage d'un xml via PHP et mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut Formatage d'un xml via PHP et mysql
    Bonjour

    J'ai un petit soucis de formatage pour un export XML via PHP.
    Mon code PHP:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
     
    $db_name = "menu";
    $link = mysql_connect("", "", "") or die("Connexion impossible.");
    $table_name = 'MENU';
    $db = mysql_select_db($db_name, $link);
     
     
    $query = "select * from " . $table_name;
    $result = mysql_query($query) or die("Impossible d'interroger la base de données");
    $num = mysql_num_rows($result);
     
    // connaître le nbre de champs
      $nombre=mysql_num_fields($result);
     
    // s'il y a des résultats 
    if ($num != 0) {
    	$file= fopen("phpxml_mnu.xml", "w");
    	$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
    	$_xml .="<navigation>\r\n";
    	while ($row = mysql_fetch_array($result)) {
     
    		for ($i=0;$i<$nombre;$i++){    
     
    		$champs=mysql_field_name($result,$i);
     
    		//convertit en utf8 pour les caractères accentués.
    		$contenu=utf8_encode($row[$champs]);
     
                //$_xml .="\t<$champs>" . $contenu . "</$champs>\r\n";   
    			$_xml .="\t<menu nom=\"$contenu\" href=\"$contenu\" />\r\n";
      }
             }
    $_xml .="</navigation>";
    fwrite($file, $_xml); fclose($file);
            echo "Le fichier XML a etait créé <a      href=\"../photos/gallerie.xml\">Show source.</a>";
    }
    else {
        echo "erreur";
    } 
    ?>

    Il me cré un XML comme celui ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <navigation>
     
    	<menu nom="M d'O" href="M d'O" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="Créations" href="Créations" />
     
    	<menu nom="Objets" href="Objets" />
     
    	<menu nom="Installations" href="Installations" />
     
    	<menu nom="Art" href="Art" />
     
    	<menu nom="Divers" href="Divers" />
     
    	<menu nom="Contacts" href="Contacts" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="Private" href="Private" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    	<menu nom="" href="" />
     
    </navigation>
    J'aimerai avoir ceci dans l'idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="iso-8859-1" ?> 
    <navigation>
    <menu name="M d'O" href="/home/" />
    <menu name="Creations" href="/tutorials/">
    	<submenu name="Objets" href="Objets" />
    	<submenu name="Instalations" href="Instalations" />
    </menu>
    <menu name="Contacts" href="/reviews/">
    	<submenu name="Books" href="/reviews/books/" />
    	<submenu name="Software" href="/reviews/software/" />
    </menu>
    <menu name="Private" href="/reviews/" />
    </navigation>
    J'ai fais pas mal de recherches mais je bloque un peu surtout niveau de la syntaxe de la requette.
    Merçi d'avance

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    dans quel cas tu veux une balise "submenu" ? quelles sont tes données de départ dans la base de données ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    ma base assez simple se presenterai comme ça

    MAIN_MNU: Objets , SUB0: Installations , SUB1: Art , SUB2: Divers...

    Du coup submenu serai pour les sous menus
    Dans cet example Objet etant le seul MAIN_MNU a avec des sous menus
    Les autres n'en ayant pas.

    Merçi a toi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    Une condition sur la premiere colonne suffirai.
    Mais je vois pas comment l'ecrire

    genre premiere colonne "menu name"
    le reste "submenu name"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    Probleme resolu avec une condition simple, merçi quand meme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    if( $i==0 ) 
              { 
                   // Premier élément : début menu 
                     $_xml .="\t<menu nom=\"$contenu\" href=\"$contenu\" />\r\n"; 
              } 
              else 
              { 
                   // Sous menu 
                     $_xml .= "\t\t<submenu nom=\"$contenu\" href=\"$contenu\" />\r\n"; 
              } 
              if( $i+1==$nombre ) 
              { 
                   // Dernier élément : fin menu 
                     $_xml .= "\t</menu>\r\n"; 
              }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM XML] Recherche dans xml via php ?
    Par Naoli dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 21/04/2007, 08h54
  2. Réponses: 4
    Dernier message: 29/03/2007, 17h06
  3. xml - création xml via php(mysql) - manque données
    Par Raiders dans le forum XQUERY/SGBD
    Réponses: 5
    Dernier message: 23/03/2006, 18h54
  4. Réponses: 16
    Dernier message: 22/03/2006, 11h11
  5. Exportation base MySql en XML via Php
    Par gehan dans le forum Outils
    Réponses: 8
    Dernier message: 19/01/2006, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo