Je cherche le code d'un formulaire pour parcourir un fichier csv et le charger dans une table de ma basr de donnée mysql.
Version imprimable
Je cherche le code d'un formulaire pour parcourir un fichier csv et le charger dans une table de ma basr de donnée mysql.
Bonjour,
Première recherche sur le forum :
Code:
1
2
3
4 $nom_fichier1=le_nom_de_ton_fichier; $commande="mysql -u root -TONPASS -e 'LOAD DATA LOCAL INFILE \"/TONCHEMIN/".$nom_fichier1."\" INTO TABLE TA_TABLE FIELDS TERMINATED BY \";\" IGNORE 1 LINES (CHAMP1,CHAMP2,...,CHAMP_N)' TA_BDD;"; exec($commande);
Liens vers quelques discussions correspondantes :
Importer un fichier csv --> LOAD DATA INFILE
Importer des données .CSV
Fonction LOAD DATA INFILE avec un fichier source csv
Au cas où l'exemple de MaitrePylos ne soit pas suffisant...
Cordialement,
Patrick Kolodziejczyk.
Dans mon cas je ne veux pad fixer le nom de fichier je veux que l'utilisateur charge le fichier de son choix de type csv (parcourir le fichier puis le charger) .
C'est pas plus compliqué .
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 $fichier = $_FILE['fichier']; //Vérification que tout le fichier correspond à ce que l'on veut ...... //lecture du fichier $lecture = file($_FILE['fichier']['name']; foreach($lecture as $v) { echo $v .'<br />'; } //enregistrement du fichier $commande="mysql -u root -TONPASS -e 'LOAD DATA LOCAL INFILE \"/TONCHEMIN/".$fichier."\" INTO TABLE TA_TABLE FIELDS TERMINATED BY \";\" IGNORE 1 LINES (CHAMP1,CHAMP2,...,CHAMP_N)' TA_BDD;"; exec($commande);
bonjour,
j'ai trouvé cette exemple mais j'ai un problème j'ai toujours ce message "Notice: Undefined index: fichier in C:\Users\samouh\deplacement\chargement1.php on line 27
Ce n'est pas un fichier de type .csv" même si le chargement passe bien
voila mon 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <html> <head> <title>Importer un fichier texte dans une bdd MySQL</title> </head> <body> <form enctype="multipart/form-data" action="chargement1.php" method="post"> <p>Vous pouvez IMPORTER UNE LISTE issue d'un fichier au format CSV</p> <p> <input name="fichier" type="file" id="fichier" value="table.csv" /> </p> <p><input type="submit" name="go" value="Envoyez le fichier" /></p> </form> <?php // CONNEXION à la base // require_once('Connections/depalcement.php'); //require_once('../connections/joomla1.php'); // RECUPERATION CODE_CLASSE //} // UPLOAD DU FICHIER CSV, vérification et insertion en BASE if($_FILES["fichier"]["type"] != "application/vnd.ms-excel"){ die("Ce n'est pas un fichier de type .csv"); } elseif(is_uploaded_file($_FILES["fichier"]["tmp_name"])){ mysql_select_db($database_depalcement, $depalcement); //Process the CSV file $handle = fopen($_FILES["fichier"]["tmp_name"], "r"); $data = fgetcsv($handle, 1000, ";"); //Remove if CSV file does not have column headings while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { $att0 = mysql_real_escape_string($data[0]); $att1 = mysql_real_escape_string($data[1]); // $att2 = mysql_real_escape_string($data[2]); // $att3 = mysql_real_escape_string($data[3]); $sql = "INSERT INTO test (NOM, PRENOM) VALUES ( '" . $att0 . "', '" . $att1 . "')"; mysql_query($sql); } header('Location: chargement1.php'); } else{ die("Vous ne devriez pas être là"); } mysql_close(); ?> </body> </html>