Bonjour,

Avec des requêtes php/sql, je récupère des événements que je mets en forme pour générer un fichier xlm. Ce dernier va s'enregistrer directement dans mes documents.
J'aimerai que ma boucle crée un fichier xml par événement et qu'ils aient tous s’enregistrer .

Voici mon code pour générer le xml. J'ai naïvement pensé à le mettre dans la boucle, mais cela plante mon export.

header("Content-disposition: attachment; filename=".$fileName);
header("Content-Type: application/force-download");

header("Content-Transfer-Encoding: application/.xml\n");
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 10 Jul 1990 05:00:00 GMT");
echo $xml;
Le code que tu as posté ne fait rien d'autre qu'envoyer des entêtes HTTP et afficher le contenu de ton XML. Autrement dit il ne fait rien du point de vue métier.

Il faudrait que tu postes le code complet.
Modifié par jb_gfx (10 Jul 2012 - 05:12)

<?php

require_once('_inc/fn_functions.php');

foreach ($_GET as $key => $value) {
	$$key = $value;
}
/******************************* TRAITEMENT DES DONNEES *******************************/
$num_bulletin;

$date_d = mktime(0, 0, 0, $mois_d, $jour_d, $an_d);
$date_f = mktime(0, 0, 0, $mois_f, $jour_f, $an_f);
$date_f += 86400;

$xml = '';

//1. récupérer tout les cycles liés au n° de bulletin -> début du xml
$requete1 = "SELECT tx_mycinema_newsletter.uid, tx_mycinema_newsletter.number, tx_mycinema_newsletter_has_cycles.cycle_id, tx_mycinema_newsletter_has_cycles.newsletter_id, tx_mycinema_newsletter_has_cycles.deleted, tx_mycinema_newsletter_has_cycles.newsletter_sort
FROM tx_mycinema_newsletter, tx_mycinema_newsletter_has_cycles
WHERE tx_mycinema_newsletter.number = '$num_bulletin'
AND tx_mycinema_newsletter_has_cycles.newsletter_id = tx_mycinema_newsletter.uid
AND tx_mycinema_newsletter_has_cycles.deleted = 0
ORDER BY tx_mycinema_newsletter_has_cycles.newsletter_sort ASC";
$result1 = mysql_query($requete1);
if(mysql_num_rows($result1) > 0) {
    while ($data1 = mysql_fetch_array($result1)) { //boucle 1.
	$id_bulletin = $data1['tx_mycinema_newsletter.uid'];
        $id_cycle = $data1['cycle_id'];


$xml = '';
$xml .= '<?xml version="1.0" encoding="iso-8859-1"?>'."\n";
$xml .= '<cycle>';



$xml .= '<programme>'.$id_cycle.'</programme>'."\n";
$xml .= '</cycle>'."\n";

//Nom du fichier final
$fileName = 'cycles'.$id_cycle.'.xml';

//Entêtes (headers) PHP pour la création d'un fichier xml
header("Content-disposition: attachment; filename=".$fileName);
header("Content-Type: application/force-download");

header("Content-Transfer-Encoding: application/.xml\n");
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 10 Jul 1990 05:00:00 GMT");
echo $xml;

// fin boucle 1
 }
}
?>


Naïvement, j'ai crus que remettre le "header("Content-Type: application/force-download");" me permettrait de faire un fichier xml à chaque passage de la boucle.

Et là j'ai besoin de votre aide.