[SQL] Exportation CSV dans un fichier

Fermé
torer40 Messages postés 56 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 15 mai 2023 - 31 janv. 2014 à 17:15
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 5 févr. 2014 à 16:51
Bonjour,

Je recherche la requête permettant de faire une exportation CSV d'une table, directement dans un fichier (donc un fichier format .csv ) ce qui permettra de l'ouvrir ensuite directement depuis un tableur.

Merci d'avance.



A voir également:

4 réponses

torer40 Messages postés 56 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 15 mai 2023 8
5 févr. 2014 à 15:46
J'ai trouvé le moyen en php de créer un fichier et d'y écrire quelque chose :

$filename = "test.txt";
print "Ecrire dans $filename<br>";
$fp = fopen ($filename, "w") or die ("Impossible d'ouvrir $filename");
fwrite ($fp, "Hello\n");
fclose($fp);
print "réaliser un ajout dans $filename<br>";
$fp = fopen ($filename, "a") or die ("Impossible d'ouvrir $filename");
fputs ($fp, "Une autre chaine\n");
fclose($fp) ;


Mais je n'ai toujours pas trouvé comment réaliser une exportation dans ce même fichier, la base de donné en csv ..
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
Modifié par ThEBiShOp le 5/02/2014 à 15:49
Tu as plusieurs manières de le faire, tu peux le faire en ligne de commande, ou avec un client, comme mysql workbench ou heidisql, tu dois pouvoir le faire également avec phpmyadmin, fouille dans les options d'exportation.
0
torer40 Messages postés 56 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 15 mai 2023 8
5 févr. 2014 à 16:18
Je peux le faire avec phpmyadmin depuis l'onglet exporter, mais je veux le coder en php
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
5 févr. 2014 à 16:23
D'accord, il doit exister des scripts d'export CSV.

Personnellement, la dernière fois que j'ai codé un export CSV, je l'ai fait à la main, en créant mes lignes en ajoutant les champs les uns après les autres en les séparant comme il se doit.
0
torer40 Messages postés 56 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 15 mai 2023 8
Modifié par torer40 le 5/02/2014 à 16:50
Je viens de trouver un script en cherchant sur google, je viens de le tester, ça marche niquel. Mais j'ai besoin de comprendre le code car il va falloir que je l'explique à un jury d'ici peu. Et étant débutant en codage, ce script que j'ai trouvé c'est du chinois pour moi.

Pouvez-vous m'aider à expliquer ce code ?

/* vars for export */
// database record to be exported
$db_record = 'XXXX';
// optional where query
$where = '';
// filename for export
$csv_filename = 'db_export_'.$db_record.'_'.date('Y-m-d').'.csv';
 
// database variables
$hostname = "XXXXX";
$user = "XXXXX";
$[/contents/64-mots-de-passe password] = "XXXXX";
$database = "XXXXX";
 
// Database connecten voor alle services
mysql_connect($hostname, $user, $password)
or die('Could not connect: ' . mysql_error());
mysql_select_db($database)
or die ('Could not select database ' . mysql_error());
 
// create empty variable to be filled with export data
$csv_export = '';
 
// query to get data from database
$query = mysql_query("SELECT * FROM ".$db_record." ".$where);
$field = mysql_num_fields($query);
 
// create line with field names
for($i = 0; $i < $field; $i++) {
$csv_export.= mysql_field_name($query,$i).';';
}
// newline (seems to work both on Linux & Windows servers)
$csv_export.= '
';
 
// loop through database query and fill export variable
while($row = mysql_fetch_array($query)) {
// create line with field values
for($i = 0; $i < $field; $i++) {
$csv_export.= '"'.$row[mysql_field_name($query,$i)].'";';
} 
$csv_export.= '
'; 
}
 
// Export the data and prompt a csv file for download
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=".$csv_filename."");
echo($csv_export);
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
5 févr. 2014 à 16:51
Si c'est pour un projet à présenter, je te conseille vivement de concevoir toi même ton script... au moins tu sauras l'expliquer, en plus d'être risqué de prendre un script que tu n'as pas fait pour le présenté, c'est loin d'être apprécié par un jury...

Ce n'est pas très compliqué à faire, prends le temps et fais le toi même, c'est mon conseil...
0