Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/08/2006, 10h33   #1
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Par défaut [Conception] Exporter en TXT un champs de la table

Salut à tous,

je suis en train de développer un site qui permet, entre autre, de présenter des produits.
La description de chaque produit est contenue dans un champ desc_prod de la table produit de la base de données.
Lors de la présentation de ce produit sur le site web, la description est affichée sur la page HTML du produit avec une photo et des prix.

Si les clients veulent garder le descriptif du produit, pour le moment ils sont obligés de faire un copier/coller de la description donnée sur la page HTML vers leur éditeur ou traitement de texte.

Est-il possible d'exporter mon champ desc_prod vers un fichier texte qui soit téléchargeable par un client ?
Si oui, comment ?

Merci
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2006, 11h10   #2
Membre habitué
 
Inscription : octobre 2003
Messages : 102
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : octobre 2003
Messages : 102
Points : 108
Points : 108
Salut,

même mieux que çà, tu peux mettre en page ton doc et en faire un .doc ou Excel rien qu'avec du source html !

pour mieux comprendre, teste ce script :

Code :
1
2
3
4
 
<?php header("Content-Type: application/vnd.ms-excel"); 
print "<table border=\"1\"><tr><td><b>champ1</b></td><td><b>champ2</b></td></tr>"; 
print "<tr><td>valeur1 </td><td bgcolor=\"#137799\">valeur2 bakground bleu</td></tr></table>"; ?>
donc l'idée c'est de mettre a profit ta mise en page html de la présentation du produit, pour faire un document.
Soit transformer document courant en document bureautique comme si dessus, soit créer un fichier avec fopen et fputs par exemple avec un lien pour le télécharger.
l'idée c'est source en html + extention .doc; .xls = document du pack office.

ca marche pour les extention open office.
__________________
il n'y a pas de sotte existence
gisele est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2006, 13h24   #3
Membre régulier
 
Inscription : avril 2004
Messages : 236
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 236
Points : 74
Points : 74
Merci pour ces conseils.

Je voudrais éviter les formats propriétaires.

Sans aller jusqu'à un .DOC ou .XLS, est-il possible de générer à partir de la page HTML su site, une deuxième page HTML épurée des logos, hyperliens,... et qui soit dans un format imprimable sans soucis ? (qui rentre bien dans une page A4)

Comme cela ils pourraient la télécharger et la conserver ou l'imprimer chez eux.

Merci
EvilAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2006, 12h06   #4
Membre habitué
 
Inscription : octobre 2003
Messages : 102
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : octobre 2003
Messages : 102
Points : 108
Points : 108
Salut,

Pour éliminer les logos , hyper lien pour l'impression.
Je te propose de prendre les devants au niveau de la génération de la première page HTML.

Tu peux a chaque fois que quelque chose dans l'affichage de la première page t'intereesse pour la 2eme page allégee, déclencher la bufferisation de sortie et intercepter le flux, pour l'accumuler dans une variable.

Une sorte de mise en cache niveau serveur de la partie que tu souhaite rendre imprimable.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
$cache = "";
//flux que je ne garde pas
print "<img src=mon_logo.gif" />
//flux que je garde 
ob_start();//j'enclenche la bufferisation de sortie :
print <table><tr>resultat a afficher et a imprimer[...]";
// [...]
//récupère cette portion du flux dans la variable :
$cache .= ob_get_contents();
//affiche toutefois cette portion sur le doc courant et éteint la buffferisation :
ob_end_flush();
//reprends une portion d'affichage qui ne  m'interresse pas pour l'impression
print "<a href=\"blabla ....
// et ainsi de suite tu peux  successivement
//réouvrir la buff° de sortie pour garder ce que tu veux porposer a l'impression.
?>
bref $cache est la version allegée du flux html affiché, celle que tu veux donner à l'impression.
Ensuite ben soit tu génère un second fichier avec,

Code :
1
2
3
4
5
 
$fichier = fopen("mon_fichier.htm", "w");
fputs($fichier, $cache);
fclose($fichier);
print "<a href=\"mon_fichier.htm\">Version imprimable</a>";
l'inconvénient de ce que tu demandes ici c'est le risque de collision si plusieurs utilisateurs génèrent ce fichier et cherchent a cliquer sur le le lien en des laps de temps rapprochés , sauf a donner des noms différents (a la place de mon_fichier genre : session_id, ou en s'appuyant sur microtime() etc.).
__________________
il n'y a pas de sotte existence
gisele est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h08.


 
 
 
 
Partenaires

Hébergement Web