Problème d'insertion de valeur
Bonjour,
Je souhaite récupérer un certain nombre de fichiers pour les stocker dans ma table "automate".
Je vous explique ma démarche. Je liste les différents répertoire jusqu'à ce que j'arrive au bout de l'arborescence, c'est à dire aux fichiers. Je récupère ces fichiers et les stocks dans un tableau.
Code:
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
|
<?php
function liste($chemin)
{
$tab = array();
// Accès au repertoire
$repertoire=opendir($chemin);
// Initialise la boucle
$sortie_de_la_boucle=false;
// Boucle réccupérant toutes les entrées contenues dans le répertoire
while ($entree=readdir($repertoire))
{
if (($entree!=".")&&($entree!="..")&&($entree!="Filiales")&&($entree!="Sources")&&($entree!="Fournisseurs")&&($entree!="Methodes")&&($entree!="Autres")&&($entree!="Architecture_Reseau")&&($entree!="SERAP")&&($entree!="grafcet chronos"))
{
if (is_dir($chemin.$entree))
{
//$chemin .= "/".$entree;
$chemin2 = $chemin.$entree. "/";
liste($chemin2);
}
else
{
//echo '<a href =\''.$chemin.$entree.'\' target=\'_self\'>'.$chemin.$entree.'</a><br />';
$tab[]=$chemin.$entree;
}
}
}
$tableau=array();
foreach($tab as $value)
{
$tableau = explode("/", $value);
//j'effectue ceci car certaine arborescence comporte un répertoire de plus que les autres
if(count($tableau)>5)
{
for($i=6;$i<count($tableau);$i++)
{
$tableau[5]=$tableau[5].'/'.$tableau[$i];
}
}
//echo "<pre>".print_r($tableau)."</pre>";
List ($serveur, $secteur, $ue, $batiment,$source, $fichier) = $tableau;
$req = "SELECT id_instal FROM nomination WHERE INSTR('".addSlashes($fichier)."', type_instal) > 0 OR INSTR('".addSlashes($fichier)."', type_instal2) > 0";
$result = mysql_query($req); //or die (mysql_error());
$valeur4 = mysql_fetch_array($result);
$var = "SELECT id_secteur FROM secteur WHERE nom_secteur = '".$secteur."'";
$result = mysql_query($var) or die ("<br>Erreur");
$valeur1 = mysql_fetch_array($result);
$get = "SELECT id_ue FROM ue WHERE nom_ue = '".$ue."'";
$result = mysql_query($get);
$valeur2 = mysql_fetch_array($result);
$requete = "SELECT id_bat FROM batiment WHERE nom_bat = '".$batiment."'";
$result = mysql_query($requete);
$valeur3 = mysql_fetch_array($result);
$queri = "INSERT INTO automate (id_instal, id_ue, id_bat, id_secteur, pdf) SELECT '".$valeur4['id_instal'] ."','".$valeur2['id_ue'] ."','".$valeur3['id_bat'] ."','".$valeur1['id_secteur'] ."','".$fichier."' FROM automate WHERE not exists (SELECT * FROM automate WHERE pdf ='".$fichier."')";
mysql_query($queri); //or die (mysql_error());
}
//fermeture du repertoire
closedir($repertoire);
}
?> |
Mon problème se trouve sur la requete ci dessus "insert into". En effectuant celle-ci je souhaite récupérer les fichiers qui ne sont pas encore présent dans ma table afin de les incorporer dedans. Si le fichier existe déja dans ma table alors on ne fais rien. Le problème est que quand je lance l'application, la requête m'incorpore des fichiers certes, qui n'étaient pas présent avant (donc c'est positif sur ce point) mais il me les rentre au moins 200 fois et je ne vois pas pourquoi ?!
J'espère que quelqu'un sera m'aider s'il vous plaît :roll: