Importation automatique d'un csv dans une table PhpMyAdmin

Matoubj Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Matoubj Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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