Bonjour,
Je souhaite importer dans ma BDD le contenu d'un fichier excel.
Voici mon code;


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
 
<h1>Importer un fichier Excel</h1>
 
<form method="post" action="?page=importer_excel_cible" enctype="multipart/form-data"> 
	 <table border="0" cellspacing="0" cellpadding="3">
		  <tr>
			   <td>Fichier : </td> 
			   <td><input type="file" name="fichier"></td> 
		  </tr>
		  <tr>
				<td></td>  
			    <td><input type="submit" name="submit" value="Valider"> </td> 
		  </tr>
	 </table>
</form>
Et le code du traitement du fichier;

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
50
51
52
53
54
55
 
<?php
	include(path.'lib.php');
	connexion();
	$fp = fopen($_FILES['fichier']['tmp_name'], "r"); 
	//$fp = fopen($_FILES['fichier'], "r"); 
 
 
	while (!feof($fp))// Tant qu'on n'atteint pas la fin du fichier
	{ 
		$ligne = fgets($fp,4096); // On lit une ligne
 
		/* On récupère les champs séparés par ; dans liste*/
		$liste = explode(";",$ligne);  
 
		/* On assigne les variables */ 
		$refProduit = $liste[0]; 
		$nom = $liste[1]; 
		$dimensions = $liste[2]; 
		$photo = $liste[3]; 
		$categorie = $liste[4]; 
		$qteMin = $liste[5]; 
		$prix = $liste[6]; 
		$classement = $liste[7]; 
 
		echo $refProduit; 
		echo $nom;
		echo $dimensions;
		echo $photo;
		echo $categorie;
		echo $qteMin;
		echo $prix;
		echo $classement;
 
		/* Ajouter un nouvel enregistrement dans la table */ 
		$query = "INSERT INTO produit VALUES('$refProduit','$nom','$dimensions','$photo','$categorie','$qteMin','$prix','$classement',NOW(),1,0)"; 
		$result = MYSQL_QUERY($query); 
 
		if(mysql_error()){ 	/* Erreur dans la base de donnees, surement la table qu'il faut créer */
			echo '<script language="javascript" type="text/javascript">
			 <!--
			 alert("Erreur, importation stoppée : '.mysql_error().'");
			history.back();
			 -->
			</script>';
		} 
		else{
			$result2 = mysql_query("INSERT INTO matproduit (refProduit,refMat) VALUES ('$refProduit',12)");
		} 
	}
 
	/* Fermeture */ 
	fclose($fp); 
	MYSQL_CLOSE(); 
?>
Quand j'affiche le résultat de mes variables $reProduit etc j'ai des caractères spéciaux et absolument pas ce que je souhaite. Mon fichier excel contient 2 lignes correctement renseignées pourtant. Si quelqu'un a une idée...