Bonjour,
je voudrais réaliser du publipostage en PHP grâce à des variables récupérés via une requêtes SQL.
En fait j'ai une table épreuve liée à des intervenants. Donc pour une épreuve il peut exister plusieurs intervenants. Je voudrais avoir un bouton qui permettrait d'imprimer des convocations personnalisées pour chaque intervenant suivant un modèle en XML ( édité sur WORD ).
J'ai donc suivi un tutoriel sur internet pour réalisé ceci. La seule subtilité est que je veux autant de convocations qu'il y a d'intervenants ( donc avec une boucle while après ma requête ). C'est ici que ça bloque , impossible de réaliser plusieurs fichiers
Voici le code PHP :
Merci d'avance ..
je voudrais réaliser du publipostage en PHP grâce à des variables récupérés via une requêtes SQL.
En fait j'ai une table épreuve liée à des intervenants. Donc pour une épreuve il peut exister plusieurs intervenants. Je voudrais avoir un bouton qui permettrait d'imprimer des convocations personnalisées pour chaque intervenant suivant un modèle en XML ( édité sur WORD ).
J'ai donc suivi un tutoriel sur internet pour réalisé ceci. La seule subtilité est que je veux autant de convocations qu'il y a d'intervenants ( donc avec une boucle while après ma requête ). C'est ici que ça bloque , impossible de réaliser plusieurs fichiers

Voici le code PHP :
<?php
//connexion bdd
include('../../../../bdd/connexion.php');
$cxn = connect();
//récupère l'id passé en URL
$idEp = $_GET['idEp'];
$exterieur = "select * from epreuve e , externe_particip ep,exterieur ext where e.idEp = ep.idEp AND ep.idExt=ext.idEx AND e.idEp =".$idEp." ";
$reqExt = $cxn -> query($exterieur);
while($ligneExt = $reqExt->fetch(PDO::FETCH_ASSOC))
{
$name = 'convoc.xml'; // nom du fichier à ouvrir
$myFile = file_get_contents($name);
$searchReplace = array(
'«NOM»' => $ligneExt["nomEx"],
'«PRE»' => $ligneExt["prenomEx"]
);
$search = array_keys($searchReplace);
$replace = array_values($searchReplace);
$nomFinale = 'convoc_'.$ligneExt["nomEx"].'_'.$ligneExt["prenomEx"].'.xml';
// envoi d'un en-tête php qui indique au navigateur web que le contenu qui arrive
// est de type binaire et à exploiter par Word
header('Content-Type: application/msword; name="'.$nomFinale.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="'.$nomFinale.'"');
// on génère le flux de données à la volée, aucun stockage sur disque
echo str_replace($search, $replace, $myFile);
}
?>
Merci d'avance ..