Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème d'insertion de données dans une table

données issues d'un fichier csv

    20 février 2006 à 14:49:48

    Bonjour à tous!! :D

    je suis actuellement bloqué sur une importation de données via un fichier csv.
    je suis novice en php, et je viens de découvrir la majorité des fonctions incluses dans ce code :




    <? if (isset ($_POST['importer']) AND !empty ($_POST['importer']))
    {
    mysql_connect("localhost", "root", "");
    mysql_select_db("carte_demarchage");
    $row=1;
    $handle = fopen($_POST['importer'], 'r' );
    while (($data = fgetcsv($handle, 1000, ';')) !== FALSE)
    {
    $num = count($data);echo '<p> '.$num.' entrées à la ligne'.$row.' : <br /> </p> \n';
    $row++;for ($c=0; $c < $num; $c++)
    {
    echo ($data[$c].'<br />');
    $essai = explode (";" , $data[$c]);
    //test de $essai
    echo $essai[0];
    echo $essai[1];
    $requeteinsertion = mysql_query ('INSERT INTO tp_fdv (CodeRemettant, LibRemettant) VALUES ("'.$essai['0'].'", "'.$essai['1'].'" )' ) or die(mysql_error());
    }
    //lit le fichier incarné par $handle
    //$contents = fread ($handle, filesize ($_POST['importer']));
    //echo $contents;
    echo '<br> youplaliyouplala';
    }
    fclose($handle);
    }
    //else { echo 'Veuillez spécifier le chemin d\'un fichier  ';}
    ?> 




    alors voilà j'ai plusieurs soucis :
    1 - mon fichier csv a pour séparateur de champs le ';'.
    lorsque je fais : echo ($data[$c].'<br />'); ça m'affiche chaque champs à la ligne.
    exemple :
    (ligne 1 qui correspond au nom des champs)
    Identifiant
    nom
    prénom
    ....

    (ligne 2 qui correspond aux données cette fois ci )
    abcd
    dupont
    robert
    ....

    est-ce normal? je dois pas avoir plutot tout à la suite et avoir un saut de ligne à la fin de chaque ligne et non à la fin de chaque champ?

    2- mon code me met comme erreur undefined offset... on line 26, c'est à dire auè niveau des echo $essai[0] et [1]
    et idem avec offset 2...
    ça veut dire quoi?

    qq'un peut m'orienter un peu s'il vous plait? :o

    merci beaucoup!!!
    :D
    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2006 à 14:53:42

      déjà, remplace :


      $requeteinsertion = mysql_query ('INSERT INTO tp_fdv (CodeRemettant, LibRemettant) VALUES ("'.$essai['0'].'", "'.$essai['1'].'" ) ) or die(mysql_error()); 


      par :


      $requeteinsertion = mysql_query ('INSERT INTO tp_fdv (CodeRemettant, LibRemettant) VALUES ("'.$essai['0'].'", "'.$essai['1'].'")' ) or die(mysql_error());
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2006 à 14:56:15

        ok merci je vais tester!!
        si c'est le quote qui manque à la fin de la requete, je me demande si il est pas après la parenthèse de VALUES au lieu d'être à l'intérieur.
        désolé pour la faute sur ce quote, dans mon code elle n'y est pas à la base...
        [edit] ah bah t'as corrigé...

        bon...toujours ce pb d'offset...je comprends pas..
        o_O
        • Partager sur Facebook
        • Partager sur Twitter

        problème d'insertion de données dans une table

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown