Formulaire import avec insertion dans la base

Résolu/Fermé
jeinny Messages postés 133 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 17 février 2010 - 25 juin 2009 à 11:00
jeinny Messages postés 133 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 17 février 2010 - 25 juin 2009 à 11:12
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:

<?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>


Désolé pour la longueur du code.
Je vou remerci d'avance
Cordialement.
A voir également:

1 réponse

jeinny Messages postés 133 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 17 février 2010 26
25 juin 2009 à 11:12
nan ba c bon jai trouvé toute sel il fallai juste mettre des quote utour ".$compte[$a]." voila
!!
0