Bonjour,
Je suis confronté au problème suivant :
Dans le code ci-dessous, j'importe un fichier csv dans une table mysql.
Pas de souci à l'affichage du résultat dans le HTML, pas de souci pour l'insert des lignes, SAUF le champ décimal défini à 10,2 dans lequel je n'enregistre rien (valeur reste égale à 0,00).
A noter que cela fonctionne parfaitement dans une table identique pour les 'articles'. Le CSV n'est pas le même évidement, l'origine du problème ?
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 switch($_POST['remise']){ case 'Importer toutes les remises' : if (isset($_FILES["selectedFileRemise"]["type"]) != "application/vnd.ms-excel") { die("Ce n'est pas un fichier de type .csv"); } elseif (is_uploaded_file($_FILES['selectedFileRemise']['tmp_name'])) { $db = Database::connect(); try{ $toutsupprimer= $db->prepare("DELETE FROM remise_distributeur WHERE code != 0"); $toutsupprimer->execute(); $statementPrix = $db->prepare("INSERT INTO remise_distributeur (code, nom, remise) values(?,?,?)"); } catch(Exception $e) { echo "Une erreur est survenue dans la connexion (table tmp_import_remise). Message d'erreur : ".$e->getMessage(); } $file = new SplFileObject($_FILES['selectedFileRemise']['tmp_name']); $file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD); $file->setCsvControl(';') ; echo (<<<eof <div class='container'> <H1> Remises ajoutées </H1> </div> <div class='container'> <table class='table table-striped' > <thead> <tr> <th scope = 'col'>Code</th> <th scope = 'col'>Nom</th> <th scope = 'col'>Remise</th> </tr> </thead> <tbody> eof ); foreach ($file as $row) { $statementPrix->execute([$row[0], $row[1], $row[2]]); echo (<<<etf <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> </tr> etf ); } Database::disconnect(); } break;
Partager