Bonjour,
j'ai un petit code qui me plait beaucoup et me permet d'importer un fichier CSV dans mysql a partir d'un bouton "Parcourir"
Le probleme est le code en lui-meme, la logique a l'air bonne mais il ne fonctionne pas

Pouvez vous me donner quelques elements de reponses pour le modifier simplement ?

page d'upload :
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
  <? echo "<form name='form1' method='post' action=".$_SERVER['PHP_SELF']." enctype='multipart/form-data'>"; ?>
     Pour ajouter ton serveur il suffit de remplir ce formulaire 
     <table border="0" cellspacing="0" cellpadding="3">
      <tr>
       <td>Table :</td> 
       <td> <input type="text" name="table"> </td> 
      </tr>
      <tr>
       <td>Fichier :</td> 
       <td> <input type="file" name="fichier_u"> </td> 
      </tr>
      <tr>
       <td>Créer table ? :</td> 
       <td> <input type="checkbox" name="creertable" checked> </td> 
      </tr>
      <tr>
        <td></td>  
       <td> <input type="submit" name="submit" value="Et HoP !"> </td> 
      </tr>
     </table>
     <input type="hidden" name="action" value="ajouter">  
    </form>
   <? 
   break;
 
   }
 
  ?>

Page d'appel (meme si elle n'est pas appelé. D'ailleurs j'voulais vos reactions quand a l'utilisation du $_SERVER['PHP_SELF'] pour ce type de tache)
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
 
<?
 switch($action)
 {
  /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
   case "ajouter":
 
 /* Variables */
   $bdd = "newsletter"; /* Base de données */
   $host= "localhost"; /* Hote (localhost en principe) */
   $user= "root"; /* Utilisateur */
   $pass= ""; /* Mot de passe */ 
 
 /* Connexion bdd */
   mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); 
   mysql_select_db($bdd); 
 
 /* On cree la table */
 if ($creertable)
  {
  $query = "CREATE TABLE $table( val1 int(4), val2 varchar(4), val3(24), val4 varchar(4) )"; 
  $result= MYSQL_QUERY($query);
  }
 
  /* On ouvre le fichier à importer en lecture seulement */
 $fichier = $_FILES['fichier_u']['tmp_name'];
 if (file_exists($fichier))
     $fp = fopen("$fichier", "r"); 
 else
     { /* le fichier n'existe pas */
       echo "Fichier introuvable !<br>Importation stoppée.";
       exit();
     }
 
    while (!feof($fp)) /* Et Hop on importe */
    { /* Tant qu'on n'atteint pas la fin du fichier */ 
       $ligne = fgets($fp,9); /* On lit une ligne */  
 
       /* On récupère les champs séparés par ; dans liste*/
       $liste = explode( ";",$ligne);  
 
       /* On assigne les variables */ 
       $val1 = $liste[0];
       $val2 = $liste[1];
       $val3 = $liste[2];
       $val4 =  $liste[3]; 
 
       /* Ajouter un nouvel enregistrement dans la table */ 
       $query = "INSERT INTO $table VALUES('$val1','$val2','$val3','$val4')"; 
       $result= MYSQL_QUERY($query); 
 
       if(mysql_error())
        { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
           print "Erreur dans la base de données : ".mysql_error();
           print "<br>Importation stoppée.";
           exit();
        } 
       else /* Tout va bien */
         print "$val1 $val2 $val 3 $val4 <br>";
     } 
 
     echo "<br>Importation terminée, avec succès."; 
 
     /* Fermeture */ 
     fclose($fp); 
     MYSQL_CLOSE(); 
 
   break;
 
 
   /* FORMULAIRE DE CHOIX D'IMPORTATION */  
 
   default: 
   ?>