Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [PHP] » [Résolu] Export fichier csv
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )


Auteur
Sujet : [Résolu] Export fichier csv
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.16 par jour)


Score :

Message du 21-05-2008 @ 8:59      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour,

Je dois sortir un fichier csv modifié portant le nom export.csv. J'utilise une fonction exportMysqlToCsv() pour ce faire.

Or comme on peut le voir sur la copie écran, le fichier qui en ressort porte le nom csv_export.php

Par contre le contenu du fichier est bien formaté au format csv et les données sont correctes par rapport à ce que j'attends.

Code :


function exportMysqlToCsv($table,$filename = 'export.csv')
{
$csv_terminated = "\n";
$csv_separator = ";";
$csv_enclosed = '"';
$csv_escaped = "\\";
$table="closers";
$div = $_POST['classe']; // je retourne ici une valeur de tri avec la méthode POST
$file = 'export.csv';

$sql_query = "select `prenom`,`nom`,`user`,`pass`,`email` from $table where `home` like '$div'"; // tri des données

// récupération des données
$result = mysql_query($sql_query) or die("Erreur SQL : $query
".mysql_error());
$fields_cnt = mysql_num_fields($result);


$schema_insert = '';

for ($i = 0; $i < $fields_cnt; $i++)
{
$l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed,
stripslashes(mysql_field_name($result, $i))) . $csv_enclosed;
$schema_insert .= $l;
$schema_insert .= $csv_separator;
} // end for

$out = trim(substr($schema_insert, 0, -1));
$out .= $csv_terminated;

// Formatage des données
while ($row = mysql_fetch_array($result))
{
$schema_insert = '';
for ($j = 0; $j < $fields_cnt; $j++)
{
if ($row[$j] == '0' || $row[$j] != '')
{
if ($csv_enclosed == '')
{
$schema_insert .= $row[$j];
} else
{
$schema_insert .= $csv_enclosed .
str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed;
}
} else
{
$schema_insert .= '';
}

if ($j < $fields_cnt - 1)
{
$schema_insert .= $csv_separator;
}
} // fin for

$out .= $schema_insert;
$out .= $csv_terminated;
} // fin while

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; file=$file");
echo $out;

//on vide la table 'closers'
   $query = "TRUNCATE TABLE `closers`";
   $result = mysql_query($query);
exit;
}






Votre aide est la bienvenue.

Merci bien




[message édité le 21-05-2008 @ 9:20 Par zorgh]
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.16 par jour)


Score :

Message du 21-05-2008 @ 9:20   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Il me manquait quelques lignes de code à la fin :

Code :


$f = fopen ('export.csv','w');
fputs($f, $out);
fclose($f);


----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.032 secondes