Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 08/08/2007, 16h55   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Par défaut [CSV] Créer un fichier CSV sur le serveur

Bonjour à tous,

j'essai d'expoter des données mysql vers un fichier csv et mettre ce fichier csv sur le serveur. voici le code :

Code :
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
 
	   // on se connecte à MySQL 
 
	   include ('connect.php');
 
  	  $resQuery = mysql_query("SELECT * FROM lldiffusion_produit");   
 
  	  header("Content-Type: application/csv-tab-delimited-table");   
 	  header("Content-disposition: filename=/home.10.3/lldiffus/www/lldiffusion_export.csv");   
 
  	 if (mysql_num_rows($resQuery) != 0) 
	 {   
    		 // titre des colonnes   
   		  $fields = mysql_num_fields($resQuery);   
    		  $i = 0;   
    		 while ($i < $fields)
		 {   
       			echo mysql_field_name($resQuery, $i).";";   
       			$i++;   
    		 }   
     		echo "\n";   
 
    		 // données de la table   
    	 	while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) 
		{   
    			  foreach($arrSelect as $elem) 
			  {   
      			  	echo "$elem;";   
			  }
      		}   
      		echo "\n";   
     	}
mais je ne comprends pas.
Ca ne focntionne pas. Il ne me créé par le ficheir csv sur le serveur et c'est internet explorer qui veut le telecharger.
Et quand je le telecharge via internet explorer, en l'ouvrant j'ai le message d'erreur :

le fichier ne peut être ouvert en entier...

Pouvez-vous m'aider.

Merci d'avance.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 15h57   #2
Membre confirmé
 
Inscription : avril 2007
Messages : 254
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 254
Points : 262
Points : 262
En utilisant Header, tu forces les echos à écrire dans un fichier allant se placer chez le client.
A mon sens, au lieu de cela, tu devrais utiliser les fonctions fOpen, fWrite et fClose pour écrire dans un fichier côté serveur.
__________________
Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.
Ouach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 09h15   #3
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Je ne sais pas si c'est la meilleure solution, mais personnellement j'utilise :

Exemple d'utilisation :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ob_start();
print $monchamp;
 
$contents = ob_get_contents();
ob_end_clean();
 
$filename = "monfichier.csv";
 
if(!$handle = fopen(BASEDIRFILE.$filename, 'w+')) {
   echo 'Impossible d\'ouvrir le fichier ('.$filename.')';
   exit;
}
 
if(fwrite($handle, $contents) === false) {
   echo 'Impossible d\'écrire dans le fichier ('.$filename.')';
   exit;
}
 
fclose($handle);
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 15h10   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 30
Points : 10
Points : 10
Tu dois remplacer la ligne
Code :
  header("Content-disposition: filename=/home.10.3/lldiffus/www/lldiffusion_export.csv");
par

Code :
header("Content-Disposition: attachment; filename=lldiffusion_export.csv");
bigcortex 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 10h40.


 
 
 
 
Partenaires

Hébergement Web