Page 1 sur 1

Extraction d'une variable mysql vers Word

Posté : 09 oct. 2012, 13:12
par wotahan
Bonjour à tous,

Voilà tout est presque dit dans le titre.
Je voudrais extraire la variable "Resume" d'une bdd mysql vers un fichier Word.
J'ai le script suivant qui plante. Mais je ne vois pas pourquoi.
quelqu’un pourrait regarder ce qui ne va pas?
Merci d'avance :
<?php

//select 
$host='***'; //nom du seveur 
$bdd='***'; //nom de la base de données 
$login=$_POST['Login']; //login de l'utilisateur 
$pwd=$_POST['Mdp']; // mot de pass 

// Connexion à la base de données
mysql_connect($host, $login, $pwd) or die ("Connexion Impossible");
mysql_select_db("$bdd") or die ("Connexion Impossible");


//----on définit le type de fichier 
$type_fichier = "msword"; 

//----on définit l'extension 
$extension = "doc"; 

//---- headers 
//----type fichier 
header("content-type:application/$type_fichier"); 


//----type extension 
header("content-disposition:.doc; filename=Soumissions.$extension"); 


//----date + titre 
$now_date = date('d-m-Y H:i'); 
$titre = "Liste des résumés  éditée le $now_date"; 

//---- libéllé requete SQL 
$requete = "SELECT Resume FROM Soumission"; 




//---- exécution requete SQL 
$result = @mysql_query($requete) or die(mysql_error()); 

//---- separateur 
$sep = "\n"; 

//---- affichage titre 
echo("$titre\n\n\n"); 


//---boucle d'enregistrement des données dans la variable $texte 
$j = 0; 
while($row = mysql_fetch_row($result)) 
{ 
	$texte = ""; 
	for($j=0; $j) { 
//----noms des champs 
$texte .= mysql_field_name($result,$j) . " : "; 


//----contenu 
if(isset($row[$j])) 
$texte .= "NULL".$sep; 
elseif ($row[$j]= "") 
$texte .= "$row[$j]".$sep; 
else 
$texte .= "".$sep; 
} 

//----on enlève le "$" 
$texte = str_replace($sep."$", "", $texte); 
$texte .= "\t"; 
print(trim($texte)); 
print "\n\n"; 
$j++; 
} 

//----validation que le fichier a bien été rempli 
return (true); 

?> 

Re: Extraction d'une variable mysql vers Word

Posté : 09 oct. 2012, 13:30
par Mazarini
Ton problème viens du fait que le contenu que tu envoies est un fichier texte et non un fichier word.
Si tu ouvres un fichier word avec un éditeur de texte (notepad, ultraedit...), tu verras que ce n'est pas simplement du texte, mais plein de caractères utilisés par word pour la mise en forme.

J'ai l'explication de ton problème, mais pas la solution. D'ailleurs j'espère que l'on ne me demandera jamais de faire du word avec php :oops:

Re: Extraction d'une variable mysql vers Word

Posté : 09 oct. 2012, 14:07
par wotahan
Mince.
Mais bon, pour l'instant mon script n'arrive même pas à télécharger quoi que ce soit...

Re: Extraction d'une variable mysql vers Word

Posté : 09 oct. 2012, 14:19
par Mazarini
Si tu enlèves les header(), tu verras les erreurs php et tu pourras déboguer ton script.

Re: Extraction d'une variable mysql vers Word

Posté : 10 oct. 2012, 12:23
par wotahan
Ok super merci.
J'avais pas fini ma boucle for...
Pour ceux que ça intéresse il faut remplacer par :
//---boucle d'enregistrement des données dans la variable $texte 
$j = 0;
$nb_champs = mysql_num_fields($result); 
while($row = mysql_fetch_row($result)) 
{ 
	$texte = ""; 
	for($j=0; $j<$nb_champs ; $j++) {
 
Ca fait pas tout à fait un fichier Word, mais plutot un txt... Mais c'est le mieux que j'ai trouvé...