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 :

Exporter un tableau en XML [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut Exporter un tableau en XML
    Bonsoir,
    Comment je peux exporter mes données ,affichées dans un tableau et stockées dans une table sql, sous un fichier XML.
    Il me demande la destination pour enregistrer et la date d'enregisrement du fichier sera automatique. (Export des données au format XML)

    Cordialement.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Bonjour, est ce qu'il y a de propositions? un bouton qui génère le tableau dans une page HTML en documnet XML (y a-t-il des scripts ou librairie ?)

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Il faut que tu ais une idée de la structure du fichier XML que tu veux générer. Ensuite, c'est comme pour l'affichage dans un tableau : il faut parcourir les données et construire le fichier XML.
    A lire sur le sujet : Gestion du XML en PHP 5 : utiliser DOM
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Bonsoir,
    Mon tableau est de type datagrid qui se remplit automatiquement à partir d'une page php et boucle foreach des requetes SQL
    pour l'exemple pour le fichier test.xml il met les données statiques, pour moi c'est impossible je veut qu'il sera automatique.

    Voila la page HTML qu'est ce qu'elle contient:

    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
    <div class="col-xs-12 col-md-12">
    				<div class="row table-responsive">
    					<table id="grid-data" class="table table-condensed table-hover table-striped"
    data-toggle="bootgrid" data-ajax="true" data-url="prestations.php">
    						<thead>
    							<tr>
    								<th class="col-xs-1 center" data-column-id="date">Date</th>
    							    <th class="col-xs-1 center" data-column-id="client">Client</th>
    								<th class="col-xs-1 center" data-column-id="name">Projet</th>
    								<th class="col-xs-1 center" data-column-id="tache">Tâche</th>
    								<th class="col-xs-1 center" data-column-id="debut">Début</th>
    								<th class="col-xs-1 center" data-column-id="fin">Fin</th>
    								<th class="col-xs-2 center" data-column-id="rapport">Rapport</th>
    								<th class="col-xs-2 center" data-column-id="selection">Sélection</th>
    								<th class="col-xs-1 center" data-column-id="note">Note</th>
    								<th class="col-xs-1 center" data-column-id="modifier">Modifier / Supprimer</th>
     
    							</tr>
    						</thead>
    						<tbody>
     
    					</table>
    				</div>
    			</div>

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Bonjour,

    ma table dans la base s'appelle prestation et je ne sais qu'elle est le rôle de root, je l'ai pris comme expemle.

    Fatal error: Call to a member function createElement() on a non-object in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\genererXML.php on line 21
    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
    47
    48
    49
    50
      <?php
     
      $prestation = 'color';
     
      include ('db.inc.php');
     
      if($_SESSION['category']=="Utilisateur")
     
      $req="select * from prestation where name in (select p.name from inscription i, project p where i.pseudo= p.affectation and i.email = '".$email."')";
     
      else
     
    	$req="select * from prestation";  
     
    	$stmt	= $connexion->prepare($req);
     
    	$stmt->execute();	
     
    	$dom = new DomDocument();
     
    	$root = $doc->createElement('root');
     
    	$root = $doc->appendChild($root);
     
    	while( $results	=	$stmt->fetchAll(PDO::FETCH_ASSOC))
    	{
    		$occ = $doc->createElement($prestation);       //--> Un noeud a chaque ligne
     
    		$occ = $root->appendChild($occ);
     
    		foreach ($row as $fieldname => $fieldvalue)   //--> Ajout d'un noeud fils pour chaque champ
    		{ 					
     
    			$child = $doc->createElement($fieldname);    //--> Nom du child et sa valeur a ajouter
     
    			$child = $occ->appendChild($child);
     
    			$value = $doc->createTextNode($fieldvalue);
     
    			$value = $child->appendChild($value);
     
    		}
     
    	}
     
    	$doc->save('prestations/prestation.xml');
     
    	$doc->formatOutput = TRUE;
     
      ?>

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Vu la tête de ton HMTL, tu dois avoir un composant (Javascript ou autre) qui récupère les données envoyées depuis le script PHP pour construire la grille automatiquement.
    Mais ça ne nous dit pas la structure que tu veux obtenir dans le fichier XML.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Bonsoir,
    Le fichier prestation.xml a été généré mais il est presque vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0"?>
     
    -<root>
     
    <id/>
     
    </root>
    il y a warning:

    Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\genererXML.php on line 31
    Il faut avoir un script c'est vrai??

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    En supposant que tu parles de ce foreach-ci : foreach ($row as $fieldname => $fieldvalue) //--> Ajout d'un noeud fils pour chaque champ, vérifie si tu as bien défini une variable $row quelque part.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Bonjour, où est le problème (Invalid Character Error)??

    Fatal error: Uncaught exception 'DOMException' with message 'Invalid Character Error' in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\genererXML.php:34 Stack trace: #0 C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\genererXML.php(34): DOMDocument->createElement('0') #1 {main} thrown in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\genererXML.php on line 34
    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
    47
    48
    49
    50
    51
    52
    53
    54
      <?php
     
      $prestation = 'id';
     
      include ('db.inc.php');
     
      if($_SESSION['category']=="Utilisateur")
     
      $req="select * from prestation where name in (select p.name from inscription i, project p where i.pseudo= p.affectation and i.email = '".$email."')";
     
      else
     
    	$req="select * from prestation";  
     
    	$stmt	= $connexion->prepare($req);
     
    	$stmt->execute();	
     
    	$doc = new DomDocument();
     
    	$root = $doc->createElement('root');
     
    	$root = $doc->appendChild($root);
     
    	while( $results	=	$stmt->fetchAll(PDO::FETCH_ASSOC))
    	{
    		$occ = $doc->createElement($prestation);       //--> Un noeud a chaque ligne
     
    		$occ = $root->appendChild($occ);
     
    		foreach ($results as $fieldname => $fieldvalue)   //--> Ajout d'un noeud fils pour chaque champ
    		{ 					
     
    			$child = $doc->createElement($fieldname);    //--> Nom du child et sa valeur a ajouter
     
    			$child = $occ->appendChild($child);
     
    			$value = $doc->createTextNode($fieldvalue);
     
    			$value = $child->appendChild($value);
     
    		}
     
    	}
     
    	$doc->save('prestations/prestation.xml');
     
    	$doc->formatOutput = TRUE;
    	//$handle = fopen("prestations/prestation.xml", "r");
     
    	//$doc->load('prestations/prestation.xml');
     
      include('prestation.php');
      ?>
    Amicalement.

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Le 1er champ id et se commence par '1' et le 2eme date peut etre il commence par '0' c'est ça le problème?

    C'est comme cet exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8"?>
    <rows>
    <row>
    <date><![CDATA[2015-09-01]]></date>
    <client><![CDATA[FTW Group Corporate]]></client>
    <project><![CDATA[START]]></project>
    <task><![CDATA[Tache matin]]></task>
    <start><![CDATA[8:00]]></start>
    <finish><![CDATA[8:01]]></finish>
    <duration><![CDATA[0.02]]></duration>
    <note><![CDATA[-Finir les tâches restantes]]></note>
    </row>

  11. #11
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut
    Bonjour,
    j'ai pas connu mon problème, y a -t- il de réponse?

  12. #12
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    J'ai trouvé l'erreur c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( $results	=	$stmt->fetch(PDO::FETCH_ASSOC))
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( $results	=	$stmt->fetchALL(PDO::FETCH_ASSOC))
    .

    Bref, comment je peux ouvrir mon fichier XML tout seul après sa création?

    Cordialement.

  13. #13
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Par défaut re
    Bonsoir,
    J'ai trouvé une solution pas mauvaise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $doc->save('prestations.xml');
     
    	$doc->formatOutput = TRUE;
     
     
    	$fichier = 'prestations.xml';
     
    	$xml = simplexml_load_file($fichier);
     
     
    	foreach($xml as $prestation){
    		echo $prestation->date.'<br>';	
    	}
    Merci tout le monde

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

Discussions similaires

  1. [RegEx] Exporter un tableau HTML en XML/XLS
    Par wishmastah dans le forum Langage
    Réponses: 1
    Dernier message: 15/05/2006, 13h41
  2. [Excel] Exporter un tableau vers excel
    Par legillou dans le forum Documents
    Réponses: 8
    Dernier message: 08/02/2006, 14h37
  3. Exportation base MySql en XML via Php
    Par gehan dans le forum Outils
    Réponses: 8
    Dernier message: 19/01/2006, 19h42
  4. Export SGBD sous forme XML
    Par Jacques - 06 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 10/01/2006, 17h24
  5. exporter un tableau de donnée vers un document word
    Par demerzel0 dans le forum Access
    Réponses: 2
    Dernier message: 04/11/2005, 11h57

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