Import CSV PHP PDO

Résolu
Leacode22 Messages postés 11 Statut Membre -  
Leacode22 Messages postés 11 Statut Membre -
Helloo :)
Je suis actuellement en train d'essayer d'importer un fichier csv ligne par ligne dans ma base de donnée en laissant la possibilité a l'utilisateur de choisir la correspondances des champs et cellules. Je souhaiterais que l'utilisateur souhaite choisir le séparateur, le nombre de ligne a ignorer et le numéros du champ a importer .. Après avoir éplucher de nombreux forum, je n est pas réussie de trouver de solution ( récente ) adapte a mon problème :/

Si quelqu'un peut me mettre sur une piste ça serais génial :D

Merciiii :)

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Et donc.. quel est le souci exactement ?
    Car là tu ne fais qu'exposer le programme (complet) que tu souhaites réaliser.. sans nous montrer le code que tu as déjà essayé de faire et sans nous indiquer sur quoi tu bloques précisément...
    Car si on relis ton besoin.. il faut :

    Pour les choix de l'utilisateur, un formulaire html/php
    Pour ensuite faire l'insertion, Lire un fichier csv ligne par ligne puis faire de simples requêtes SQL

    0
  2. Leacode22 Messages postés 11 Statut Membre
     
    Désoler, je n ai pas l'habitude de poster des messages :)
    Voila ce que j ai fait :)

    Mon formulaire :)

    <form name="upload" method="post" action="#" enctype="multipart/form-data" accept-charset="utf-8" class="form-desabo">
    <div class="row desabo-row">
    <div class="col-md-12 col-md-offset-3 center desabo-container">
    <label for="sepateur">Choisissez le separateur ( , / ; - ..)</label><br>
    <input type="text" name="separateur" id="separateur"><br>
    <label for="sepateur">Choisissez le delimiteur ( " [ ] ; - ..)</label><br>
    <input type="text" name="delimiteur" id="delimiteur"><br>
    <label for="ignore">Nombre de ligne à ignorer</label><br>
    <input type="text" name="ignore" id="ignore"><br>
    <label for="import">N° champ a importer</label><br>
    <select name="import" id="import">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="3">4</option>
    <option value="3">5</option>
    <option value="3">6</option>
    <option value="3">7</option>
    <option value="3">8</option>
    <option value="3">9</option>
    <option value="3">10</option>
    <option value="3">11</option>
    <option value="3">12</option>
    <option value="3">13</option>
    <option value="3">14</option>
    <option value="3">15</option>
    </select>
    <div class="btn-container">
    <h1 class="imgupload"><i class="fa fa-file-image-o"></i></h1>
    <h1 class="imgupload ok"><i class="fa fa-check"></i></h1>
    <h1 class="imgupload stop"><i class="fa fa-times"></i></h1>
    <p id="namefile">Accepte les .txt /.csv </p>
    <button type="button" id="btnup" class="btn btn-primary btn-lg">Posez-le ici!</button>
    <input type="file" value="" name="fileup" id="fileup">
    </div>
    </div>
    </div>
    <div class="col-md-12 desabo-submit">
    <input type="submit" value="Submit!" class="btn btn-primary" id="submitbtn">
    <button type="button" class="btn btn-default" disabled="disabled" id="fakebtn">Envoyer <i class="fa fa-minus-circle"></i></button>
    </div>
    </form>


    Le code que j ai commencer a faire :)

    $row = 1;
    if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    echo "<p> $num champs à la ligne $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
    echo $data[$c] . "<br />\n";
    }

    }
    fclose($handle);
    }
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Et... où récupères tu les variables de ton formula ?
      Dans le fgetcsv, remplaces la virgule par la variable contenant le séparateur.
      0
  3. Leacode22 Messages postés 11 Statut Membre
     
    Bah pour le moment je récupère rien, je lis juste un .csv qu'il y a dans mon projet.
    Le soucie ce que je ne vois pas comment faire pour récupérer le csv via mon input type file et que ça rentre dans la base de donnée :/
    0
    1. Leacode22 Messages postés 11 Statut Membre
       
      Voila ce que ca donne


      0
    2. Leacode22 Messages postés 11 Statut Membre
       
      Merci :) Je vais regarder ! :)
      0
    3. Leacode22 Messages postés 11 Statut Membre
       
      J ai regarder mais ce ne m as pas aider bien plus malheureusement :/
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Leacode22 Messages postés 11 Statut Membre
       
      Ben..tu a codé l'upload du fichier ??
      0