Publipostage Word avec PHP/MySql

Publipostage Word avec PHP/MySql - PHP - Programmation

Marsh Posté le 10-09-2005 à 09:48:33    

Bonjour.  
 
Je développe actuellement le site intranet de la société où je travaille. Cet intranet contient un annuaire des clients de la société. Il m'a été demandé de réaliser le publipostage word en prenant les données dans la base MySql.
 
Il faudrait donc que je récupère les noms, adresses et contacts des société clientes que je les insère dans un tableau word qui serait directement utilisé pour un publipostage classique.
 
Ma base de données est sous une Fedora.
 
Merci de m'aider à trouver une solution pour ce problème.

Reply

Marsh Posté le 10-09-2005 à 09:48:33   

Reply

Marsh Posté le 10-09-2005 à 10:48:20    

Quel rapport avec php?
D'ailleur, ca me semble plus un probléme d'utilisation de logiciel même si tu devras utiliser un autre logiciel pour récupérer ta liste d'email et en faire un document word.


Message édité par omega2 le 10-09-2005 à 10:48:48
Reply

Marsh Posté le 12-09-2005 à 09:20:16    

Ben le rapport avec PHP, c'est que mon intranet est écrit en PHP...
Je dois récupérer ces données via une page web écrite en php qui doit générer un document Word.


Message édité par Goulf le 12-09-2005 à 09:20:46
Reply

Marsh Posté le 12-09-2005 à 09:57:32    

Ok, au début, je pensais que vous n'aviez pas de php d'installé alors je m'étais dit que c'était vous compliquer la tache que de passer par ce biés.
 
Générer du word en php sans utiliser word, c'est pas gagné. A ma conaissance, la seule méthode qui fonctionne, c'est de piloter word depuis php. Ca nécessite d'avoir php sous windows avec word d'installer sur le même ordinateur.
Sans ça, il faudrait se créer un systéme permettant d'écrire un fichier .doc (quasiment impossible sans y passer plusieurs mois pour ne pas dire plusieurs années) ou un fichier .rtf (déjà plus facile vu que c'est un format ouvert)
 
Finalement, c'est quoi qui t'es demandé :  

  • créer un fichier word contenant toutes les lettres avec entête et co. déjà remplis
  • ou créer un modéle de publipostage et remplir en php la liste des destinataires dans un fichier à part? Le second cas permet de séparer présentation du publipostage et liste des destinataires ce qui rendra la tache plus facile en php (moins d'élément à gérer). Ca rend aussi le fichier beaucoup moins lourd vu qu'on ne répéte pas des centaines de fois le même texte.


Je te souhaites de réussir à t'en sortir. Personellement je n'ai jamais eu à faire ça. Par contre j'ai déjà vu des discutions sur ce genre de chôses sur le forum, avec un peu de chance, ca te donera des indications. :)

Reply

Marsh Posté le 12-09-2005 à 10:06:49    

Salut
Je fais un truc similaire (mais qui marche beaucoup mieux a vrai dire :) )
Je genere un fichier xml contenant les donnees a inserer dans le publipostage .
Avec l'aide xsl je transforme ce fichier xml en html (via php) puis en pdf (vi l'appel de htmldoc depuis php).
Et ca marche du tonnerre , le seul passage difficile est d'ecrire le xsl pour avoir un rendu similaire a ton word
 
Si tu ne veux pas faire cela tu peux toujours generer un fichier csv (des donnees source du publipostage) via php ,une macro dans ton document a publiposter allant piocher dans ce csv.
 
bonne chance

Reply

Marsh Posté le 12-09-2005 à 10:23:08    

Merci pour ces indications.
 
Pour omega2, on me demande plutot la deuxième solution,c'est à dire juste générer un fichier word avec les adresses de tous les contacts. Les assistantes commerciales feront leur publipostage à partir de ce fichier généré.  
 
Pour betsamee, ta solution a l'air d'être superbe mais j'ai peur d'avoir du mal à la mettre en place rapidement. Le csv me parait être une bonne alternative, mais ayant peu d'expérience en php, je ne vois pas trop comment aborder le problème.
 
Help wanted, merci.


Message édité par Goulf le 12-09-2005 à 10:23:53
Reply

Marsh Posté le 12-09-2005 à 10:27:07    

pour le csv il te suffit de selectionner les donnees qui t'interessent via une requete depuis php , tu ecrirais les resultats de cette requette dans un fichier
 
tu peux meme imaginer d'utiliser la commande sql "load data infile" (cf doc) (dans une requete depuis ton script php bien sur) pour ecrire directement dans le fichier avec les delimiteurs de champs/lignes de ton choix

Reply

Marsh Posté le 19-09-2005 à 10:10:59    

Bon j'ai trouvé une solution qui me convient parfaitement.
 
Alors pour ceux que ça peut intéresser. Je crée un fichier word via la fonction fopen() de php, j'écris les résultats de mes requêtes dans ce fichier, je feme le fichier avec fclose() et j'envoie le fichier créé par mail aux destinataires. Pour cela j'ai utilisé une classe que j'ai trouvé dans la liste de commentaires laissés sur la fonction mail () sur php.net
 
Enfin j'efface le fichier sur le serveur via unlink().
 
Le fichier résultant est un fichier source de publipostage, il suffit de le fusionner avec un modèle de publipostage et le tour est joué.  :D
 
Merci à tous pour votre aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed