Forum Clubic

Insertion d'un fichier .csv dans une base de donnée

Bonjour,

Je voudrais insérer des fichiers en .csv dans ma base de donnée(Xampp, PHPMyAdmin)
J’ai crée sous PhpMyAdmin une table nommée cout et je voudrais donc le remplir en insérant le fichier .csv
Ma table cout est composé de : Id_Cout, MontantB, MontantN
J’ai crée un formulaire avec un bouton parcourir(qui va aller chercher le fichier)
Maintenant je dois crée un script en php et c’est la que je bloque…
j’ai cherché un peu partout mais je n’ai malheureusement pas trouvé la solution…

voici mon formulaire en html :

Merci de m’aider pour le script SVP

Pouvez vous me dire si cela est juste ???
car quand je clique sur allé hop sa ne marche point… j’ai trouvé ce code sur un site

Importer un fichier texte dans une bdd MySQL

Importer un fichier texte dans une bdd MySQL

<? switch($action) { /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */ case "ajouter": /* Variables */ $bdd = "base"; /* Base de données */ $host= "localhost"; /* Hote (localhost en principe) */ $user= "user; /* Utilisateur */ $pass= "motpasse; /* 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( nom varchar(24),prenom varchar(24) )"; $result= MYSQL_QUERY($query); } /* On ouvre le fichier à importer en lecture seulement */ if (file_exists($fichier)) $fp = fopen("$fichier", "r"); else { /* le fichier n'existe pas */ echo "Fichier introuvable !
Importation stoppée."; exit(); } while (!feof($fp)) /* Et Hop on importe */ { /* Tant qu'on n'atteint pas la fin du fichier */ $ligne = fgets($fp,4096); /* On lit une ligne */ /* On récupère les champs séparés par ; dans liste*/ $liste = explode( ",",$ligne); /* On assigne les variables */ $nom = $liste[0]; $prenom = $liste[1]; /* Ajouter un nouvel enregistrement dans la table */ $query = "INSERT INTO $table VALUES('$nom','$prenom')"; $result= MYSQL_QUERY($query); if(mysql_error()) { /* Erreur dans la base de donnees, surement la table qu'il faut créer */ print "Erreur dans la base de données : ".mysql_error(); print "
Importation stoppée."; exit(); } else /* Tout va bien */ print "$nom $prenom
"; } echo "
Importation terminée, avec succès."; /* Fermeture */ fclose($fp); MYSQL_CLOSE(); break; /* FORMULAIRE DE CHOIX D'IMPORTATION */ default: ?> <? echo ""; ?>
 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="text" name="fichier"> </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; } ?>

Hello. Je ne passe pas souvent sur cette section donc je prends le sujet avec quelques jours de retard.

Mes beaux jours de PHP/MySQL étant loin derrière moi, je me contenterai d’une recommandation:

La commande mysql LOAD DATA INFILE est probablement plus adaptée au chargement d’un fichier complet dans une table plutôt que de faire des boucles sur chaque ligne de ton fichier. Non seulement la syntaxe sera beaucoup plus lisible, mais en plus cette commande est infiniment plus rapide que de faire des boucles avec une commande INSERT pour chaque ligne de ton fichier.