Bonjour,
Je souhaiterais exporter une table de ma base de données dans un fichier .csv pour ensuite l'importer dans une autre base de données.
Quelqu'un aurait une idée?
Bonjour,
Je souhaiterais exporter une table de ma base de données dans un fichier .csv pour ensuite l'importer dans une autre base de données.
Quelqu'un aurait une idée?
Exemple de création d'un csv en php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49 <?php require_once("inc/fonctions.php"); require("class/offre.class.php"); require("class/article.class.php"); require("class/article_media.class.php"); header("Content-Type: application/csv-tab-delimited-table; charset=ISO-8859-1"); header("Content-disposition: filename=offres_".date("d")."".date("m")."".date("Y").".csv"); $str=""; $liste_offre = Offre::getAll(); foreach($liste_offre as $offre) { $str.=$offre['libelle_ss_famille_offre'].";".$offre['libelle_regies_article'].";".$offre['libelle_compta_article'].";".$offre['compte_famille_article']."\n"; $liste_article=Article::getAll($offre['id_famille_article']); foreach($liste_article as $article) { if($article['media_article'] == 0) { $leMedia = "Aucun"; } else { $leMedia = article_media::getLibelle($article['media_article']); } $str.=$article['libelle_article'].";".$article['designation_article'].";".$article['pu_article'].";".$article['libelle_mode_article'].";".$article['duree_article'].";".$article['type'].";".$leMedia.";"; if($article['revision_article'] == 0) { $str .= "Non"; } elseif($article['revision_article'] == 1) { $str .= "1er Janvier"; } else { $str .= "1er Juillet"; } $str .= "\n"; } $str.="\n"; } echo $str; ?>
Cette façon de faire ne me parle pas trop, j'aurais plutôt tendance a vouloir me connecter au préalable à ma base de données, d'ouvrir le fichier csv (le créer), de faire la requête ($req="SELECT * FROM ma_table) et d'écrire tout dans le fichier csv.
Je pensais utiliser les fonction "fopen()", "fwrite()"... pour la gestion du fichier mais je ne sait pas comment m'y prendre!
Help!
Quel SGBD ? MySQL dispose des instructions LOAD INTO qui permet d'exporter le contenu d'une table dans un fichier CSV.
Bref cela tient en une requête.
question pourquoi PHP 4 ? t'es chez quel hébergeur ?
J'utilise phpMyAdmin.
Le serveur sur lequel je travail est sous php4 dc j'utilise php4.
Une solution consiste à définir toi-même la fonction fputcsv qui n'existe pas en PHP4.
http://fr.php.net/manual/fr/function.fputcsv.php#47606
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function fputcsv($handle, $row, $fd=',', $quot='"') { $str=''; foreach ($row as $cell) { $cell=str_replace(Array($quot, "\n"), Array($quot.$quot, ''), $cell); if (strchr($cell, $fd)!==FALSE || strchr($cell, $quot)!==FALSE) { $str.=$quot.$cell.$quot.$fd; } else { $str.=$cell.$fd; } } fputs($handle, substr($str, 0, -1)."\n"); return strlen($str); }
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Partager