Bonjour, il y a quelques jour je m'ai mis à travailler sur un site web qui devra prendre en entrée un fichier(.txt) présentant des commissions et les persister dans la base de donnée dans une table work afin de génerer ensuite une facture. je suis maintenant au stade d'insertion dans la base de données j'ai oracle 10g auquelle je me connecte avec oci. le problème est que le fichier est uploadé mais c'est censé être parcouru et persisté aprés son upload.la page cible de formulaire se charge infiniment.
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
 
$extensions_valides = array( 'txt');
 
//1. strrchr renvoie l'extension avec le point (« . »).
 
//2. substr(chaine,1) ignore le premier caractère de chaine.
 
//3. strtolower met l'extension en minuscules.
 
$extension_upload = strtolower(  substr(  strrchr($_FILES['toupload']['name'], '.')  ,1)  );
 
if ( in_array($extension_upload,$extensions_valides) && $_FILES['toupload']['error'] <= 0)
{   echo "upload réussi"."<br/>";
   $fileid = md5(uniqid(rand(), true));
   $nom="uploads/{$fileid}.{$extension_upload}";
   $resultat = move_uploaded_file($_FILES['toupload']['tmp_name'],$nom);
   if($resultat)
   {
       $username="scott";
       $password="tiger1";
       $connexion= oci_connect($username, $password);
        if($connexion) {
          echo "connexion réussie <br/>";
        }
        else
        {
             exit("connexion echouée");
        }
     echo "déplacement réussi <br/>";
     $lines=file($nom);
    foreach ($lines as $line) {
 
        $tableau=explode(" ",$line);
 
         foreach ($tableau as $element)
         {
            echo "$element <br/>";
         }
         echo "<hr/>";
 
         $query='insert into work(numcommission,datecommission,numclient,nomclient,typeclient,mail,codecommission,montant) values(:numcommiss, :datecommiss, :numclient,:nomclient,:typeclient,:email,:codecommiss,:montant)';
 
      $statement=oci_parse($connexion,$query);
 
      oci_bind_by_name($statement, ':numcommiss', $tableau[0]);
      oci_bind_by_name($statement, ':datecommiss', $tableau[1]);
      oci_bind_by_name($statement, ':numclient', $tableau[2]);
      oci_bind_by_name($statement, ':nomclient', $tableau[3]);
      oci_bind_by_name($statement, ':typeclient', $tableau[4]);
      oci_bind_by_name($statement, ':email', $tableau[5]);
      oci_bind_by_name($statement, ':codecommiss', $tableau[6]);
      oci_bind_by_name($statement, ':montant', $tableau[7]);
      oci_execute($statement);
      oci_free_statement($statement);  
 
 
 
 
   }
 
     oci_close($connexion);
 
}
}
else
{   if( !in_array($extension_upload,$extensions_valides))
{ echo "veuillez assurer que le fichier à uploader est un .txt";
}
 
else
{ echo "erreur lors de transfert de fichier";
}
}
les lignes de fichier(.txt) auront ce layout:

11221 04/07/2016 8 client1 acheteur uchiha@gmail.com 10 250

et voici le script que j'utilise pour la création des tables: j'ai la table service qui contient les codes et libellé de commission une table work où je persiste les infos issues de fichier .txt et une table client dans la quelle sera insérée un client s'il n'existe pas déja(j'ai pas encore arriver à cette étape).

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
 
drop table work;
drop table client;
drop table service;
 
create table service
( code number(2) primary key,
  libelle varchar2(50));
 
create table client
( idclient number(5) primary key,
  nomclient varchar2(50),
  type varchar2(25),
  mail varchar2(100),
  dateajout date);
 
create table work
( numcommission number(5) primary key,
  datecommission date,
  numclient number(5),
  nomclient varchar2(50),
  typeclient varchar2(25),
  mail varchar2(100),
  codecommission number(2),
  montant number(8,3),
  constraint fk_work foreign key(codecommission) references service(code));
prière de m'aider et merci infiniment