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 :

Importer csv dans mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut Importer csv dans mysql
    Bonjour à tous,

    j'ai testé les 2 script proposé ici http://www.developpez.net/forums/d11...r-csv-php-bdd/


    mais le premier script de stevenP me dit :
    Chemin du fichier : upload/

    Resultat Import SQL :
    Ajout dans la base de données effectué avec succès
    Mais la table reste vide, je ne comprend pas bien.

    Je voulais savoir aussi comment faire, dans le fichier je n'aurais pas la colonne id (auto increment), elle restera à 100 enregistrements en fixe, comment faire pour que ça n'importe que les 31 colonnes sans tenir compte de la colonne id qui ne sera pas dans le csv..

    Pour les script de mandrake_of_mandregas, le script s’exécute mais la base reste vide.

    Pourriez vous me donner quelques précisions.

    Merci

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Un coup d'oeil vers la doc.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\n'
      (colonne1, colonne2, ...);

    Et oui par contre, si tu as 31 colonnes, j'ai le plaisir de t'annoncer qu'il va te falloir renseigner les 31 colonnes...
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Merci Spartacusply

    j'ai essayé ton code et j'ai lu la doc, j'ai l'impression que c'est bon, mais j'ai un message d'erreur qui me dit:

    Parse error: syntax error, unexpected T_STRING in C:\xampplite\htdocs\tgh\admin\import_csv3.php on line 2


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    	LOAD DATA INFILE 'tgh_juges.csv' INTO TABLE tgh_juges2
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\n'
      (id,id_juges,JE1,JE2,JE3,JE4,JE5,JIA1,JIA2,JIA3,JIA4,JIA5,JD1,JD2,JD3,JD4,JD5,JE1_modif,JE2_modif,JE3_modif,JE4_modif,JE5_modif,JIA1_modif,JIA2_modif,JIA3_modif,JIA4_modif,JIA5_modif,JD1_modif,JD2_modif,JD3_modif,JD4_modif,JD5_modif);
    	  ?>
    c'est bizarre que les 2 autres codes marchent sans message d'erreur mais la table reste vide. J'ai vidé la table et avec le code http://www.developpez.net/forums/d11...d/#post6499274
    ça recréé les champs mais il reste vide.

    voila la première ligne pour info : 1,,"90","50",,,"70",,,,,,,,,,,"3","1",,,"2",,,,,,,,,,

    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    bon j'avais oublié quelques trucs, voila ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    mysql_connect("localhost","root","xxxxxx") or die("MySQL - Connection Error");
    mysql_select_db(tgh_synchro) or die("MySQL - Cannot Select Database");
     
    mysql_query("LOAD DATA LOCAL INFILE 'tgh_juges.csv' INTO TABLE tgh_juges2");
      	  ?>
    J'ai vidé la base et j'essaie d'importer toutes les colonnes ( avec l'id) soit 32 colonnes.

    Je n'ai plus de message d'erreur, mais ça n'importe rien.

    Comme j'utilise PDO c'est peut être même plutôt ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    require ('../conf/config.php');
     
    $bdd->query("LOAD DATA LOCAL INFILE 'tgh_juges.csv' INTO TABLE tgh_juges2");

    mais c'est pareil, plus de lmessage d'erreur mais la table reste vide
    Merci

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Ben normal c'est une requête donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $connexion = mysql_connect("localhost", "mysql_user", "mysql_password");
    $sql = "LOAD DATA INFILE ...";
    $resultat = mysql_query($sql) or die mysql_error($connexion);
    Cela dit, LOAD DATA INFILE demande d'avoir les droits sur les fichiers ce qui n'est pas le cas sur les serveurs mutualisés. Dans ce cas il faut passer par php.

    J'ai donné un exemple ici pour enregistrer un fichier csv dans une table de bdd. Dans l'exemple c'est pour mysqllite mais le principe est le même (il te suffit de passer l'étape de la création de la table temporaire qui n'est pas utile dans ton cas).

    P.S j'avais pas vu ton dernier message. Fais afficher les erreurs mysql ! Si tu utilises pdo il faut configurer PDO::ERRMODE_EXCEPTION pour attraper les messages d'erreurs sinon par défaut c'est le mode silence.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    C'est bon j'ai trouvé (je vais me coucher^^, il fallait le chemin complet du fichier csv.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    require ('../conf/config.php');
    $chemin = $_SERVER["DOCUMENT_ROOT"];
    $bdd->query("LOAD DATA LOCAL INFILE '".$chemin."/tgh/admin/tgh_juges.csv' INTO TABLE tgh_juges2
    FIELDS 
            TERMINATED BY ','
            ENCLOSED BY '\"'
    LINES
            STARTING BY ''
            TERMINATED BY '\n'
    IGNORE 1 LINES
    ");

    Merci à vous 2 et bonne nuit

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

Discussions similaires

  1. [MySQL] Importation .csv dans mysql
    Par Chipss dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/09/2011, 00h11
  2. [MySQL] Import CSV dans MySQL
    Par ekzouille dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 28/09/2010, 17h49
  3. [MySQL] import csv dans mysql
    Par caro_tpl dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/10/2007, 14h37
  4. Import CSV dans Mysql
    Par wylls dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/01/2007, 13h47
  5. Importer CSV dans MySQL
    Par The_freeman dans le forum Administration
    Réponses: 6
    Dernier message: 14/02/2006, 22h18

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