Bonjour,
Voila j'ai un formulaire pour importer un fichier csv dans ma base (table Balance), mais ce fichier comporte des enregistrements qui n'existe pas dans une autre (table Compte) et je veux qu'il y soit c'est pur cela que lors de l'insertion dans la table Balance je vérifie en même temps s'ils existent dans la table Compte et je les insère dans une autre table (table Temporaire). (je ne peux pas les insérer directement dans la table Compte car il y des clé étrangère et l'utilisateur doit les renseigner). Bref en gros voila et le problèe se situe au niveau de la requete qui insert dans la table Temporaire:
Voila mon code:
Désolé pour la longueur du 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 <?php session_start(); /* si la variable de session login n'existe pas cela siginifie que le visiteur n'a pas de session ouverte, il n'est donc pas logué ni autorisé à acceder à l'espace membres */ if(!isset($_SESSION['login'])) { echo "Vous n'êtes pas autorisé à acceder à cette zone"; include('index.html'); exit; } //augmente le temps d'execution pour que les requêtes aboutissent set_time_limit(600); //connexion au serveur MySQL $connexion = mysql_connect("localhost","root","") or die ("Connexion impossible au SGBD."); //sélection de la BDD $base = mysql_selectdb("LaMoulinetteCACE", $connexion) or die ("Sélection de la base impossible."); //vide la table balance avant toute insertion $req="TRUNCATE TABLE Balance"; mysql_query($req)or die (mysql_error()); $sql='LOAD DATA INFILE "Balance.csv" REPLACE INTO TABLE Balance FIELDS TERMINATED BY ";"'; $rs=mysql_query($sql)or die (mysql_error()); //vérifie et envoi une réponse à l'utilisateur if ($rs) { echo"Ajout dans la base de données effectué avec succès"; } else { echo"Echec dans l'ajout dans la base de données"; } //récupère les info qu'il fut insérer dans la table compte $req1 = mysql_query("SELECT Compte,CodeCtrl,LibelleCompte FROM Balance")or die("Erreur SQL : $req1<br/>".mysql_error()); //compte combien il y a de comptes dans la table compte $req3= mysql_query("SELECT COUNT(*) as compteur FROM Compte")or die("Erreur SQL : $req3<br/>".mysql_error()); $ligne3 = mysql_fetch_array($req3); $NbLigneReq3=$ligne3['compteur']; //VÉRIFIE SI LES COMPTES QUI SONT DANS LA BALANCE EXISTENT DANS LA BASE $i=0; while ($ligne1 = mysql_fetch_array($req1)) { $req2= mysql_query("SELECT IdCompte FROM Compte") or die("Erreur SQL : $req2<br/>".mysql_error()); $ligne2 = mysql_fetch_array($req2); $CompteurLigne=1; while ($CompteurLigne<=$NbLigneReq3) { if($ligne1['Compte']!=$ligne2['IdCompte']) { $ligne2 = mysql_fetch_array($req2); $CompteurLigne=$CompteurLigne+1; } else { if($ligne1['Compte']==$ligne2['IdCompte']) { break; } } } if ($CompteurLigne>$NbLigneReq3) { $i=$i+1; $compte[$i]=$ligne1['Compte']; $ctrl[$i]=$ligne1['CodeCtrl']; $libelle[$i]=$ligne1['LibelleCompte']; } } //vide la table Temporaire avant toute nouvelle insertion $req5=mysql_query("TRUNCATE TABLE Temporaire"); echo "<br>"; echo $i; if ($i != 0) { $a=1; while ($a<=$i) { $req4=mysql_query("INSERT INTO Temporaire VALUE (".$compte[$a].", ".$ctrl[$a].", '".$libelle[$a]."') "); $a++; echo $req4; } ?><html><body><form action="importSuite.php" method="post"> <center><input type="submit" value="Valider pour renseigner les nouveaux comptes à ajouter"></center> <?php } else { ?><form action="main.html" method="post"><?php echo "Il n'y a pas de compte à intégrer.<br>"; ?><center><input type="submit" value="revenir au menu"></center> </form><?php } ?> </form> </body></html>
Je vou remerci d'avance
Cordialement.
Partager