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 :
Le résultat n'est pas correct, j'obtiens des symbôles un peu partout.
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> </p>
Je pense déjà avoir trouvé un premier problème :
Pour excel, je remplace le ; par quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $liste = explode(";",$ligne);
Je me demandais aussi si le fopen suffisait pour un xls ?
Un tout grand merci d'avance pour l'aide.
beegees
Partager