par
Invité » 03 déc. 2008, 12:01
Bonjour à tous,
j'essaye d'exporter les données d'un table mysql vers un fichier csv.
globalement ça marche mais dès que j'ai des virgules ou apostrophes dons un champ, la mise en forme est saccagée dans le fichier excel.
Voyez vous comment contourner ce type de pb?
Mon code:
$query = "SELECT * FROM contacts";
$filename = "contacts.csv";
$resQuery = mysql_query($query);
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=\"$filename\"");
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";
}
}
Bonjour à tous,
j'essaye d'exporter les données d'un table mysql vers un fichier csv.
globalement ça marche mais dès que j'ai des virgules ou apostrophes dons un champ, la mise en forme est saccagée dans le fichier excel.
Voyez vous comment contourner ce type de pb?
Mon code:
[php]
$query = "SELECT * FROM contacts";
$filename = "contacts.csv";
$resQuery = mysql_query($query);
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=\"$filename\"");
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";
}
}
[/php]