Aller au menu - Aller au contenu

Export données vers fichier txt en PHP

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Offre d'emploi : Développeur Web PHP/Drupal (H/F)

Page 1 
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1 
Hors ligne kezaha # Posté le 08/02/2012 à 19:36:03

Bonjour!

Je voudrais faire l'export de certaines données de ma base vers un fichier.txt afin de l'importer dans un de nos logiciels.

Mais un souci se pose à moi, la structure du fichier doit être strictement ordonnée et je n'arrive pas à faire de saut de ligne avec "/n" ou "/r".

Par exemple (objectif à atteindre):

0 0 0 12500 08/02/2012 0 0 45 0 23
0 0 0 9500 08/02/2012 0 0 3 0 20

alors que ce que j'ai c'est:

0 0 0 12500 08/02/2012 0 0 45 0 23 0 0 0 9500 08/02/2012 0 0 3 0 20

(code que j'ai repris et adapter à mon problème)
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
include('config.php');
session_start();
header("Content-Type: application/r"); // pas génial comme type mime, mais bon, en rtf ca fonctionnait pas tout a fait pour l'utilisation que je voulais en avoir. Et en text/plain je n'arrivais pas a avoir les retours a la ligne normaux...
header('Content-Disposition: attachment; filename=test.txt'); // je l'ai mis au format .doc... ca marche aussi
include "config.php" ; // mon fichier de connection a ma bdd

   $sql = "SELECT Recette,CdeLigne,Idchaufbill,Daterecette
FROM t_recette r, t_chauffeur c
WHERE c.Idchaufgesco = r.Idchaufgesco
AND Daterecette=now()";
  $requete=mysql_query($sql);
  $texte =""; // j'ouvre une variable texte
  $obs="0"; 
  $codecli = 0;
  $codecai = 0;
  $nom = '0';
  $type = '0';
  $heure=0;
  $prcremise=0;
  $mtremise=0;
  $totht=0;
  $mtht=0;
  $mtht1=0;
  $mtht2=0;
  $mtht3=0;
  $mttva1=0;
  $mttva2=0;
  $mttva3=0;
  $mttva=0;
  $marge=0;
  $reference="0";
  $nomven="0";
  $immat="0";
  
  while ($row=mysql_fetch_array($requete))
  {  
	
	$Daterecette = $row['Daterecette'];
	$Recette = $row['Recette']; //$ttc
	$Idchaufbill = $row['Idchaufbill'];
	$texte .= "$obs  $codecli  $codecai  $nom  $type  $Daterecette  $heure  $prcremise  $mtremise  $totht  $Recette  $mtht  $mtht1  $mtht2  $mtht3  $mttva1  $mttva2  $mttva3  $mttva  $marge  $reference  $Idchaufbill  $nomven  $immat \n ";
	//j'ajoute les lignes contenues dans ma bdd a ma variable texte avec un retour a la ligne a chaque passage de la boucle
};
echo $texte; //et on renvoie tout sur un fichier .doc téléchargeable...
//
?>


Merci par avance pour votre aide
Publicité # Posté le 08/02/2012 à 19:36:03

Hors ligne Tracker # Posté le 08/02/2012 à 20:40:28
Avatar

Études : Université de Lyon

Tu n'as pas moyen d'utiliser directement MySQL ?
http://dev.mysql.com/doc/refman/5.0/en/select.html
select ... OUTFILE ...

T.

Un peu de lecture: PHP // MySQL // JavaScript // SQL
Cherche Job en télétravail ou près de Lorient (56)
 
Hors ligne kezaha # Posté le 08/02/2012 à 21:16:19

Je ne connaissais pas cette syntaxe alors du coup j'ai piocher sur google.

Code : SQL
1
2
3
4
SELECT Idrecette,Daterecette,Recette INTO OUTFILE "D:/test.txt"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM t_recette;


J'ai testé avec MySQL Query Browser et il m'affiche l'erreur "Can't create/write to fle D:\test.txt (Errcode: 13)"

Can you help me? Merci. :)

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx