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).

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;
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 ?