Bonjour tout le monde,

Je dois importer des données de Excel (format xls) vers my base de données mysql.

J'ai trouvé un code sur le net que voici :

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
// vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
include('../../Scripts/connexion.php');
//$sql=mysql_query("DELETE FROM commmunes");
 
//=========================
// Traitement des donnees
//=========================
 
//recupere le nom du fichier indiqué par l'user
$fichier=$_FILES["userfile"]["name"];
 
// ouverture du fichier en lecture
if ($fichier)
{
//ouverture du fichier temporaire
$fp = fopen ($_FILES["userfile"]["tmp_name"], "r");
}
else{
// fichier inconnu
?>
<p align="center" >- Importation échouée -</p>
<p align="center" ><B>Désolé, mais vous n'avez pas spécifié de chemin valide ...</B></p>
<?php
exit();
}
// declaration de la variable "cpt" qui permettra de conpter le nombre d'enregistrement réalisé
$cpt=0;
?>
<p align="center">- Importation Réussie -</p>
 
<p align="right"><a href="#bas">Bas de page</a></p>
 
<?php
// importation
while (!feof($fp))
{
$ligne = fgets($fp,4096);
// on crée un tableau des élements séparés par des points virgule
$liste = explode(";",$ligne);
// premier élément
$liste[0] = ( isset($liste[0]) ) ? $liste[0] : Null;
$liste[1] = ( isset($liste[1]) ) ? $liste[1] : Null;
$liste[2] = ( isset($liste[2]) ) ? $liste[2] : Null;
$liste[3] = ( isset($liste[2]) ) ? $liste[2] : Null;
 
 
 
$champs1=$liste[0]; //ID
$champs2=$liste[1]; //NOTE
 
echo'<script LANGUAGE="JavaScript">alert("'.$champs1.'");</SCRIPT>';
 
 
// pour eviter qu un champs "nom" du fichier soit vide
if ($champs1!='')
{
// nouvel ajout, compteur incrémenté
$cpt++;
// requete et insertion ligne par ligne
// champs1 id en general dc on affecte pas de valeur
 
$req = mysql_query("INSERT INTO inscrits_en(NOTE) VALUES('$champs2') WHERE inscrits_en.ID = " . $champs1 );
//echo'<script LANGUAGE="JavaScript">alert("'.$req.'");</SCRIPT>';
 
 
?>
<table width="505" border="1" align="center" cellpadding="0" cellspacing="0" bgcolor="#eeeeee">
<tr>
<td width="124">Eléments importés :</td>
<td width="361"><?php echo $liste[0];?></td>
<td width="361"><?php echo $liste[1];?></td>
 
</tr>
</table>
<p>
  <?php
}
}
 
// fermeture du fichier
fclose($fp);
//on supprime la derniere car elle est vide
 
 
//==================
// FIN
//==================
?>
  <br>
  <br>
  Nombre de valeurs nouvellement enregistrées: <b><?php echo $cpt;?></b>.<br>
  <br>
</p>
<p>&nbsp;</p>
Le résultat n'est pas correct, j'obtiens des symbôles un peu partout.

Je pense déjà avoir trouvé un premier problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$liste = explode(";",$ligne);
Pour excel, je remplace le ; par quoi ?

Je me demandais aussi si le fopen suffisait pour un xls ?

Un tout grand merci d'avance pour l'aide.

beegees