IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Insertion csv dans Mysql par tableau [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Par défaut Insertion csv dans Mysql par tableau
    Bonjour,

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
     
    include "fonction.inc.php";
     
    connexion("localhost", "root", "", "ccf");
     
    include "debut.inc.php";
    if ((isset($_FILES['envoiFichier']['name'])&&($_FILES['envoiFichier']['error'] == UPLOAD_ERR_OK))) 
    {    
    $chemin_destination = 'C:/uploads';    
    move_uploaded_file($_FILES['envoiFichier']['tmp_name'],
    $chemin_destination.$_FILES['envoiFichier']['name']);    
    }    
     
    if (count($_FILES)==0) {
    echo"
    <form method='post' action='convocationCsv.php' enctype='multipart/form-data'>
    <input type='hidden' name='MAX_FILE_SIZE' value='2097152'> 
      Sélectionner le fichier listeConvocation.csv :</br></br>
      <input name = 'envoiFichier' type='file'/></br></br>
      <input class='bouton' type='submit' value='Envoyer le fichier'>
    </form>
    ";  
    }
     
    else {
     
    $row = 1;
    if (($handle = fopen("listeConvocation.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
            $num = count($data);
     
            $row++;
            for ($c=0; $c < $num; $c++) {
     
            }
            $sql = "INSERT INTO ccf_convocation VALUES ('{$data[0]}', '{$data[1]}', '{$data[2]}', '{$data[3]}', '{$data[4]}', '{$data[5]}', '{$data[6]}', '{$data[7]}'  )";
            $resultat=mysql_query($sql);
        }
        echo" <p> Liste importer </p>";
        fclose($handle);
    }
    }
     
     
    include "fin.inc.php";
     
    ?>
    Donc j'ai un autre script du même genre qui ajoute des utilisateurs qui fonctionne, mais j'ai un problème pour celui-ci.

    message d'erreur :

    Notice: Undefined offset: 7 in C:\Program Files\EasyPHP-5.3.3\www\ccf\convocationCsv.php on line 58

    Mon tableau commence bien à l'index 0 et se termine à 7 car il y a 8 champs dans la table ou je souhaite importer ces données.

    Si je supprime le data[7], rien ne se passe, donc je le remet mais j'ai l'erreur citée plus haut.

    Malgré l'erreur mon script insère quelques données dans ma table mais pas au bon endroit, et la date est affiché en "0000-00-00", j'ai bien pensé à mettre le format des cellules concernant les dates en américain dans mon fichier listeConvocation.csv, pour coïncider avec le format de MySQL.

    Merci de m'aider

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ca sert a rien ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $num = count($data);
     
    $row++;
    for ($c=0; $c < $num; $c++) {
     
    }
    fais un var_dump($data); pour voir

    je te conseil plutôt d'utiliser vsprintf pour faire ta requete

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Par défaut
    J'ai supprimé ce qui ne servait à rien.

    J'ai "bool(false)" qui s'est affiché en plus, depuis le var_dump($data);

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par mousefr Voir le message
    J'ai supprimé ce qui ne servait à rien.

    J'ai "bool(false)" qui s'est affiché en plus, depuis le var_dump($data);
    ton fgetcsv ne marche pas alors

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Par défaut
    Pourtant je ne vois pas ou est la faute

    Mon autre script php qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
     
    include "fonction.inc.php";
     
    connexion("localhost", "root", "", "ccf");
     
    include "debut.inc.php"
     
    if ((isset($_FILES['envoiFichier']['name'])&&($_FILES['envoiFichier']['error'] == UPLOAD_ERR_OK))) 
    {    
    $chemin_destination = 'C:/uploads';    
    move_uploaded_file($_FILES['envoiFichier']['tmp_name'],
    $chemin_destination.$_FILES['envoiFichier']['name']);    
    }    
     
    if (count($_FILES)==0) {
    echo"
    <form method='post' action='testCsv.php' enctype='multipart/form-data'>
    <input type='hidden' name='MAX_FILE_SIZE' value='2097152'> 
      Sélectionner le fichier listeUtilisateur.csv :</br></br>
      <input name = 'envoiFichier' type='file'/></br></br>
      <input class='bouton' type='submit' value='Envoyer le fichier'>
    </form>
    ";  
    }
     
    else {
     
    $row = 1;
    if (($handle = fopen("listeUtilisateur.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
            $sql = "INSERT INTO ccf_utilisateur VALUES ('{$data[0]}', '{$data[1]}', '{$data[2]}', '{$data[3]}', '{$data[4]}', '{$data[5]}', '{$data[6]}', '{$data[7]}', '{$data[8]}', '{$data[9]}')";
            $resultat=mysql_query($sql);
     
        }
        echo" <p> Liste importer </p>";
        fclose($handle);
    }
    }
     
    include "fin.inc.php";
     
    ?>;
    Les seul changements sont que j'insère dans une autre table, qu'il y a 10 données ( de data[0] a data[9] ), et que j'ouvre un autre fichier.csv, listeUtilisateur.csv au lieu de listeConvocation.csv.

    ton fgetcsv ne marche pas alors
    Il y a une raison pour qu'il ne fonctionne pas ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le var_dump tu la bien fait dans ta boucle while ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion utilisateur dans mysql avec le shell UNIX
    Par loopback dans le forum Débuter
    Réponses: 3
    Dernier message: 18/11/2006, 18h01
  2. Import de fichier Excel (CSV) dans MySQL
    Par mathieu77186 dans le forum Outils
    Réponses: 2
    Dernier message: 27/03/2006, 23h23
  3. [Upload] Insertion image dans mysql après upload
    Par alexmorel dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 23h46
  4. Importer CSV dans MySQL
    Par The_freeman dans le forum Administration
    Réponses: 6
    Dernier message: 14/02/2006, 22h18
  5. pb avec insertion sigle € dans MySql
    Par mohican13 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 02/12/2005, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo