Bonjour!!

Voici mon probleme : j'ai un fichier php d'import de plusieurs fichiers différents : un fichier 'PAC_détail.csv', 'rubrique.csv' et un fichier .txt.

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
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?php
 
switch($_POST['action']) {
  case "ajouter":  
  $serveur = "localhost";
  $user = "root";
  $pwd = "";
  $bdd = "cartes";
 
	mysql_connect($serveur, $user, $pwd) or die('Impossible de se connecter au serveur');
	mysql_select_db($bdd) or die('Impossible de sélectionner la base de données');
 
	$fichier=$_FILES['fichier']['name'];
	move_uploaded_file($_FILES['fichier']['tmp_name'],"../cartes/test/".$fichier);
 
	$fp = fopen('../cartes/test/'.$fichier,'r'); //lecture du fichier
	while (!feof($fp)){ //on parcourt toutes les lignes
		$ligne=fgets($fp); // lecture du contenu de la ligne
		$sqltest="INSERT INTO test (numero,carte) values ('$numero','$ligne')";
		$resql=mysql_query($sqltest);
	};
 
	$sql2=("select * from test");
	$resql2=mysql_query($sql2);
 
	if(mysql_error()){
			print "Erreur dans la base de données : ".mysql_error();
			print "<br>Importation stoppée.";
			exit();
    }; 
	echo "<font face=\"verdana\" size=2><center><br align=center><br><br>Importation terminée.	<br><br><br><br><br><br><br><br>
			<a href = http://localhost/cartes/importTXTbdd.php align=center>Retour sur la page d'accueil d'import</a></center></font>"; 
 
	while($ligne=mysql_fetch_array($resql2)){
		$pac=substr($ligne['carte'],0,6);
		$carte=substr($ligne['carte'],6,3);
		$matricule=substr($ligne['carte'],9,8); 
		$rubrique=substr($ligne['carte'],18,4);
		$rubriqueplus=substr($ligne['carte'],21,1);
		$resteinfos=substr($ligne['carte'],22,65);
		$monetaire=substr($ligne['carte'],87,1);
		$jjdateTraitement=substr($ligne['carte'],95,2);
		$mmdateTraitement=substr($ligne['carte'],97,2);
		$aaaadateTraitement=substr($ligne['carte'],99,4);
		$jjdateSaisie=substr($ligne['carte'],104,2);
		$mmdateSaisie=substr($ligne['carte'],106,2);
		$aaaadateSaisie=substr($ligne['carte'],108,4);
		$jjdateEffet=substr($ligne['carte'],118,2);
		$mmdateEffet=substr($ligne['carte'],120,2);
		$aaaadateEffet=substr($ligne['carte'],122,4);
		$hhheureSaisie=substr($ligne['carte'],112,2);
		$mnheureSaisie=substr($ligne['carte'],114,2);
		$ssheureSaisie=substr($ligne['carte'],116,2);
		$tt=substr($ligne['carte'],126,2);
		$rubriquetotal=$rubrique.$rubriqueplus;
 
		$result=mysql_query("INSERT INTO carte (numero,pac,carte,matricule,rubrique,rubriqueplus,resteinfos,monetaire,jjdateTraitement,mmdateTraitement,aaaadateTraitement,jjdateSaisie,mmdateSaisie,aaaadateSaisie,jjdateEffet,mmdateEffet,aaaadateEffet,hhheureSaisie,mnheureSaisie,ssheureSaisie,tt) VALUES('$numero','$pac','$carte','$matricule','$rubrique','$rubriqueplus','$resteinfos','$monetaire','$jjdateTraitement','$mmdateTraitement','$aaaadateTraitement','$jjdateSaisie','$mmdateSaisie','$aaaadateSaisie','$jjdateEffet','$mmdateEffet','$aaaadateEffet','$hhheureSaisie','$mnheureSaisie','$ssheureSaisie','$tt')");
 
		$resqlrub=mysql_query("insert into rubrique (id,rubrique,rubriqueplus,rubriquetotal) value ('$id','$rubrique','$rubriqueplus','$rubriquetotal')");
 
	};
 
	$sql_Insertion_PAC="LOAD DATA LOCAL INFILE 'C:\\\wamp\\\www\\\\cartes\\\\PAC_détail.csv'";
	$sql_Insertion_PAC.="INTO TABLE `pac` FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' ";
	$resql_Insertion_PAC= mysql_query($sql_Insertion_PAC); 
 
	$sql_Insertion_rubrique="LOAD DATA LOCAL INFILE 'C:\\\wamp\\\www\\\\cartes\\\\rubriques.csv'";
	$sql_Insertion_rubrique.="INTO TABLE `librubrique` FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' ";
	$resql_Insertion_rubrique= mysql_query($sql_Insertion_rubrique); 
 
	$sqlefftest="Truncate table test";
	$ressqlefftest =  mysql_query($sqlefftest);
 
	$sqldateImport="select * from dateImport";
	$resqldateImport=mysql_query($sqldateImport);	
 
	$moisImport=$_POST['moisImport'];
	$anneeImport=$_POST['anneeImport'];
	$moisannee=$moisImport.$anneeImport;
 
	$sqlcopiecarte="CREATE TABLE $moisannee SELECT * FROM carte";
	$ressqlcopiecarte =  mysql_query($sqlcopiecarte);
 
	if($replace=$_POST['replace']){
		$sqlcopiecarte2="insert into $moisannee select * from carte";
		$resqlcopiecarte2=mysql_query($sqlcopiecarte2);
	}
	else{
		$sqlcopiecarte="CREATE TABLE $moisannee SELECT * FROM carte";
		$ressqlcopiecarte =  mysql_query($sqlcopiecarte);
	};
 
	$sqlefflignenull="DELETE FROM $moisannee WHERE pac = ''";
	$ressqlefflignenull =  mysql_query($sqlefflignenull);
 
	$sqlefflignenull="DELETE FROM rubrique WHERE rubrique= ''";
	$ressqlefflignenull =  mysql_query($sqlefflignenull);
 
	$sqleffcarte="Truncate table carte";
	$ressqleffcarte =  mysql_query($sqleffcarte);
 
	$sqleffdateImport="Truncate table dateImport";
	$ressqleffdateImport=mysql_query($sqleffdateImport);	
 
	fclose($fp);
 
	mysql_close();
	break;
	default: 
?>
 
<html>
<body>
<font face="verdana">
<form name='form' method='post' action='' enctype='multipart/form-data'>
    <table border='0' cellspacing='0' cellpadding='3' align="center">
	<tr>
    <td><font face="verdana" size=2><center>Fichier 'PAC_détail.csv' à charger dans la base de donnée :</td> 
    <td> <input type="file" name="fichierpac"></center></font> </td> 
    </tr>
	<tr>
    <td><font face="verdana" size=2><center>Fichier 'rubrique.csv' à charger dans la base de donnée :</td> 
    <td> <input type="file" name="fichierrub"></center></font> </td> 
    </tr> 
	<tr>
    <td><font face="verdana" size=2><center>Fichier '.txt' à charger dans la base de donnée :</td> 
    <td> <input type="file" name="fichier"></center></font> </td> 
    </tr>
	<tr>
	<select name="moisImport">
		<option value="janvier">Janvier</option>
		<option value="fevrier">Février</option>
		<option value="mars">Mars</option>
		<option value="avril">Avril</option>
		<option value="mai">Mai</option>
		<option value="juin">Juin</option>
		<option value="juillet">Juillet</option>
		<option value="aout" selected>Août</option>
		<option value="septembre">Septembre</option>
		<option value="octobre">Octobre</option>
		<option value="novembre">Novembre</option>
		<option value="decembre">Décembre</option>
	</select>
	<select name="anneeImport">
		<option value="2007">2007</option>
		<option value="2008">2008</option>
		<option value="2009">2009</option>
		<option value="2010">2010</option>
		<option value="2011">2011</option>
		<option value="2012">2012</option>
		<option value="2013">2013</option>
		<option value="2014">2014</option>
		<option value="2015">2015</option>
	</select>
	<a href="http://localhost/cartes/accueil.php">Retour à la page d'accueil</a>
	</tr>
	<br><br>
    <tr>
    <td><input type='checkbox' name='replace' value='replace'>Table déjà créer</td>  
    <td> <input type="submit" name="submit" value="Charger"> </td> 
    </tr>
	<tr><td>
    <input type="hidden" name="action" value="ajouter"> </td></tr>
  </table>
 
</form> 
</font>
</body> 
</html>
<?php } ?>
Le probleme est qu'il m'importe à chaque fois le fichier 'rubrique.csv' dans ma table librubrique de ma bdd dès que je refais un import d'un fichier .txt uniquement...ce qui ne me va pas j'ai besoin qu'une seule fois dans ma bdd les libellés des rubriques...

Voici mon fichier de creation de table :

Code SQL : 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
CREATE TABLE pac (
  checke varchar(1),
  pac varchar(10),   
  client varchar(150),
  segment_origine varchar(2),
  portef varchar(2),  
  responsable_PortefeuilleDA varchar(75),
  RE varchar(75),
  Agence_Ch varchar(5), 
  Agence_Ch_BO varchar(2),  
  Agence_Ca varchar(5),
  Mod_zpp varchar(6),
  nb_bulletins varchar(6),
  PRIMARY KEY  (pac),
    KEY pac (pac))
  TYPE=MyISAM;
 
create table requete (
  id int(100) NOT NULL auto_increment,
  pac varchar(10),
  client varchar(150),  
  carte varchar(3),
  matricule varchar(8),
  rubrique varchar(4),
  rubriqueplus varchar(1),
  resteinfos varchar(65),
  monetaire varchar(1),
  jjdateTraitement varchar(2),
  mmdateTraitement varchar(2),
  aaaadateTraitement varchar(4),
  jjdateSaisie varchar(2),
  mmdateSaisie varchar(2),
  aaaadateSaisie varchar(4),
  jjdateEffet varchar(2),
  mmdateEffet varchar(2),
  aaaadateEffet varchar(4),
  hhheureSaisie varchar(2),
  mnheureSaisie varchar(2),
  ssheureSaisie varchar(2), 
  PRIMARY KEY  (id),
  KEY id (id))
TYPE=MyISAM;
 
CREATE TABLE carte (
  numero int(100) NOT NULL auto_increment,
  pac varchar(10),
  carte varchar(3),
  matricule varchar(8),
  rubrique varchar(4),
  rubriqueplus varchar(1),
  resteinfos varchar(65),
  monetaire varchar(1),
  jjdateTraitement varchar(2),
  mmdateTraitement varchar(2),
  aaaadateTraitement varchar(4),
  jjdateSaisie varchar(2),
  mmdateSaisie varchar(2),
  aaaadateSaisie varchar(4),
  jjdateEffet varchar(2),
  mmdateEffet varchar(2),
  aaaadateEffet varchar(4),
  hhheureSaisie varchar(2),
  mnheureSaisie varchar(2),
  ssheureSaisie varchar(2),
  orig varchar(1),
  TT varchar(2),
  PRIMARY KEY  (numero),
    KEY numero (numero))
  TYPE=MyISAM;
 
  CREATE TABLE test (
  numero int(100) NOT NULL auto_increment,
  carte varchar(130),
  PRIMARY KEY  (numero),
    KEY numero (numero))
  TYPE=MyISAM;
 
  CREATE TABLE dateImport (
  numeroImport int(100) NOT NULL auto_increment,
  moisImport varchar(10),
  anneeImport varchar(4),
  PRIMARY KEY  (numeroImport),
    KEY numeroImport (numeroImport))
  TYPE=MyISAM;
 
  create table rubrique (
	id int(100) NOT NULL auto_increment,
	rubrique varchar(4),
	rubriqueplus varchar(1),
	rubriquetotal varchar(5),
	PRIMARY KEY  (id),
		KEY id (id))
  TYPE=MyISAM;
 
  create table librubrique (
  	id int(100) NOT NULL auto_increment,
	rubrique varchar(4),
	plage varchar(1),
	execute_apres varchar(4),
	libelle varchar(70),
	typerub	varchar(1),
  	PRIMARY KEY  (id),
		KEY id (id))
  TYPE=MyISAM;

Est ce que quelqu'un voit ou j'ai pu faire une erreur...?

Merci d'avance

laeti