Importation automatique d'un csv dans une table PhpMyAdmin

Fermé
Matoubj Messages postés 2 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 18 juillet 2015 - Modifié par jordane45 le 18/07/2015 à 13:30
Matoubj Messages postés 2 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 18 juillet 2015 - 18 juil. 2015 à 20:13
Je vous prie de bien vouloir m'excuser car je suis venu très dans un monde un peu vieux. Je voudrais remplir automatiquement une table par un fichier csv. L'opérateur clique sur un bouton pour ouvrir un fichier csv et l'insérer automatique dans une table. Quand j'envoi je ne vois rien qui s'affiche et aucune importation de données dans la table. Je vous prie de bien vouloir m'aider à corriger ces codes. Merci

Voilà le code html qui ouvre le fichier à importer :
  • ---

<body>

<form enctype="multipart/form-data" action="ajout.php?date=<?php echo $date;?>" method="POST">
  <p class="Style2">Téléchargement des clients défaillants au format CSV</p>
   <p>
     <input name="file" type="file" />
  </p>
   <p><input type="submit" value="Envoyez le fichier" /></p>
</form>
</body>

  • ----


Voilà le code php de ajout.php
  • ----

<?
 session_start();
 {
 /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
  case "ajouter":

 /* Variables */
    
  $bdd = "toto"; /* Base de données */
  $host= "tata"; /* Hote  */
  $user= "momo"; /* Utilisateur */
  $pass= "lolo"; /* Mot de passe */
  $table = "base" ; /* La table
  
 /* Connexion bdd */
  mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); 
  mysql_select_db($bdd, $table); 
 
 
 /* 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 !<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,4096); /* On lit une ligne */ 

    /* On récupère les champs séparés par ; dans liste*/
    $liste = explode( ";",$ligne); 
  
    /* On assigne les variables */ 
 
  $date = $liste[0];
 $numpiece = $liste[1];
 $nom = $liste[2];
 $prenom = $liste[3];
 $sexe = $liste[4];
 $naissance = $liste[5];
 $residence = $liste[6];
 $lieunais = $liste[7];
  
    /* Ajouter un nouvel enregistrement dans la table */ 
    $query = "INSERT INTO $table VALUES('$date', '$numpiece', '$nom', '$prenom', '$sexe', '$naissance', '$residence', '$lieunais')"; 
    $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 "$date $numpiece $nom $prenom $sexe $naissance $residence $lieunais  <br>";
   } 
   
   echo "<br>Importation terminée, avec succès."; 
    
   /* Fermeture */ 
   fclose($fp); 
   MYSQL_CLOSE(); 
  
  break;
  
  default: 
  ?> 
  
  • ----



EDIT : AJOUT DU LANGAGE DANS LES BALISES DE CODE.
Explication disponible ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser à l'avenir.

Merci
A voir également:

1 réponse

jordane45 Messages postés 38467 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 avril 2025 4 741
18 juil. 2015 à 13:32
Bonjour,

Premier souci ... que vient faire cette accolade ligne 3 ?

Ensuite... tu peux ajouter la ligne de code suivante au début de ton script pour afficher les erreurs de code :
ini_set("display_errors", "1");
error_reporting(E_ALL);


Et enfin...; attention.. tu utilises la vielle extension mysql (considérée comme obsolète.)
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

.
0
Matoubj Messages postés 2 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 18 juillet 2015
18 juil. 2015 à 20:13
Merci Jordane45. En intégrant le contrôle d'erreur, j'ai eu ce message
  • --

Forbidden

You don't have permission to access /site/****.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
  • ---


Alors que je suis l'administrateur du site. J'ai mis le droit d'accès 777 et pourtant j'ai le même message. Que me proposez vous?

Merci
0

Discussions similaires