Salut,

Voici un script PHP qui permet d'importer des données dans ma table SQL depuis un fichier .csv

=>voir la table (screen)

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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
 
//Appel des différentes fonctions d'une page PHP
 
require_once("fonctions.php");
entete();
banniere("Importation d'un fichier .csv");
 
$link = mysql_connect(HOST, USER, PASS);
mysql_select_db(BASE, $link);
 
 
 
//=========================
// 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 echouee -</p>
<img src="images/echec.png" alt="logo-echec"></img>
<p align="center" ><B>Vous n'avez pas specifie de chemin valide ...</B></p>
<?php
exit();
}
// declaration de la variable "cpt" qui permettra de conpter le nombre d'enregistrement réalisé
$cpt=0;
?>
<a name="haut"></a>
<center>
<p>IMPORTATION REUSSI !</p>
<img height=60 width=60 src="images/reussi.jpg" alt="logo-reussi"></img>
</center>
<p align="right"><a href="#bas">Bas de page</a></p>
<a name="haut"></a>
<center>
	<table border=2>
		<th colspan=3>Elements importes</th>
		<tr>
			<td>Libelle UV</td>
			<td>Credit UV</td>
			<td>Categorie UV</td>
 
 
		</tr>
 
 
 
<?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;
 
 
 
$champs1=$liste[0];
$champs2=$liste[1];
$champs3=$liste[2];
 
// 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
 
mysql_query("INSERT INTO uv(libelleUv, creditUv, categorieId) VALUES('$champs1','$champs2','$champs3' )");
 
 
 
 
 
 
 
?>
 
 
	<tr>
 
 
 
		<td><?php echo $liste[0];?></td>
		<td><?php echo $liste[1];?></td>
		<td><?php 
		if($liste[2]==2){
			echo "Conn. Scientif.";}
		elseif($liste[2]==3){
			echo "Techn. et Meth.";}
		elseif($liste[2]==5){
			echo "Stage";}
		elseif($liste[2]==4){
			echo "Express. Comm.";}
		elseif($liste[2]==1){
			echo "Culture Generale";}
		;?>
		</td>
 
	</tr>
 
 
<?php
}
}
 
// fermeture du fichier
fclose($fp);
//on supprime la derniere car elle est vide
 
 
//==================
// FIN
//==================
?>
 
	</table>
 
 
<br><br>Nombre de valeurs nouvellement enregistrees: <b><?php echo $cpt;?></b>.<br><br>
 
<a name="bas"></a>
<p align="right"><a href="#haut">Haut de page</a></p><br>
 
<?php 
 
//Appel des boutons de retour
 
retouretaccueil();
 
 
//Appel de la fonction pied de page
 
finpage();
 
?>
Ce code est présent sur mon site car les personnes l'administrent ne connaissent pas phpmyadmin.

Le script marche parfaitement mais j'aimerais qu'il empêche l'insertion de doublon !

Exemple :

Dans ma table j'ai un champ :

AG80 - 4 - 2

J'aimerais que si dans mon fichier .csv j'ai un champ avec libelleUv = AG80, il ne l'insère pas dans la table.

Merci !!! de votre aide