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 :

importation fichier csv [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut importation fichier csv
    Bonjour
    j'ai un soucis que je n'arrive pas à comprendre, j'ai besoin de vos aides

    voilà l'erreur affichée
    Notice: Undefined offset: 1 in E:\wamp\www\import\index.php on ligne 96
    cette erreur est répétitive pour chacune des colonnes de mon fichier csv ...

    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
     
    <?php 
     
    if ( isset($_POST['ajouter2'])){
     
     $fichier=$_FILES['userfile']['tmp_name'];
     if ($_FILES['userfile']['size']==0){ // le fichier n'existe pas
           echo('Fichier introuvable !<br>Importation stoppée.');
        }
        else
        {
           $fp = fopen("$fichier", "r");
     
     
     
        while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
     
     
     
     
       $id_etablissement = $liste[0];
        $VIlle = $liste[1];
        $Secteur = $liste[2];
        $Etablissement = $liste[3];
       $FiliereDeFormation = $liste[4];
           $Niveau =  $liste[5];
           $fiche = $liste[6];
    	   $id= $liste[7];
     
     
           $sql ="INSERT INTO etablissement ( id_etablissement, Secteur, Etablissement, FiliereDeFormation, Niveau , fiche, ID ) VALUES ('$id_etablissement','$VIlle','$Secteur','$Etablissement', '$FiliereDeFormation','$Niveau ', '$fiche','$id')" ;
           $result= mysql_query($sql);
     
     
    	 }
     
     
            fclose($fp);
    		echo("importation réussie des élèves");
     
        }
    }
    ?>

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Ca donne quoi si tu fais un var_dump($liste); ?


    Les boutons et existent, servez-vous en

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    quand je clique sur ajouter il m'affiche l'erreur
    Notice: Undefined offset: 1 in E:\wamp\www\import\index.php on line 96
    pour chaque colonne

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    Fais un var_dump($liste) et postes la résultat comme l'a dit amoiraud, ou montres un fichier csv.

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    mercii pour vos réponses

    voilà le fichier csv et voilà ce qu'il m'affchie quand j'ai mis var_dump($liste);
    donnees.csv.xlsx

    array(1) { [0]=> string(707) "PK!�WJ�3�[Content_Types].xml ��(��U]O�0}7�?,}5[c �?�D��������ٿ�v��!a�/떥�{�m�*�h s�S�M:,-���,eo��E�V�0RV����?�,`D�5�,���q�2�R`b,h�35��>݌[!�b����pi��c0ؠ�B\�  �EI<|U���j,&��{7!hݯ1��� k�\" }

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    Quand tu enregistres ton fichier excel, en-dessous du champ pour inscrire le nom de ton fichier il y a un menu type, il faut que tu précises que c'est de type csv, car là il le prend comme un fichier .xlsx

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    oui j'ai enregistrée le fichier sous csv mais il le considère comme fichier vide et m'affiche l'erreur que j'ai écrit dans le code

    Fichier introuvable !
    Importation stoppée

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    essai avec ce fichier (dans archive parce que j'ai un probleme pour joindre le fichier normal) :
    donnees.rar

    car en tout cas le fichier que tu m'as envoyé n'est pas un fichier csv, ça reste une feuille Microsoft Office Excel

  9. #9
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    la même erreur

    Fichier introuvable !
    Importation stoppée

  10. #10
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    j'ai besoinnnn de voos aides heeeeeelp pllz

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    C'est déjà plus la même erreur qu'au début.

    Fais un echo sur le fichier qu'il essai d'ouvrir, il doit y avoir un problème de syntaxe.

  12. #12
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    oui c'est je crois un problème de syntaxe parce que quand j'essaie d'afficher le nom de fichier il n'affiche rien
    il m'affiche juste l'erreur

    Fichier introuvable !
    Importation stoppée
    voilà le code
    $fichier=$_FILES['userfile']['tmp_name'];
    if ($_FILES['userfile']['size']==0){ // le fichier n'existe pas
    echo $fichier;
    echo('Fichier introuvable !<br>Importation stoppée.');
    }

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    J'ai remixer ton code en enlevant tout ce qui me gênait (mise en base, variable $_FILE que je n'ai pas) et j'ai réussi à faire apparaitre toutes les données du fichiers csv :
    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
    <?php 
     
    $var="./donnees.csv";
     if (!file_exists($var)){ // le fichier n'existe pas
           echo('Fichier introuvable !<br>Importation stoppée.');
        }
        else
        {
           $fp = fopen($var, "r");
     
        while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
    		foreach($liste as $file)
    			echo "<br>".$file."<br>";
     
    	 }
            fclose($fp);
    		echo("importation réussie des élèves");
     
        }
     
    ?>
    Avec ce code et le fichier précédent tu peux sortir toutes les valeurs du fichiers csv.
    Donc à partir de là fais des echo sur ton code pour vérifier que tes variables ont les bonnes valeurs, en retravaillant un peu tout ça tu vas y arriver. Ton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ($_FILES['userfile']['size']==0)
    ne passe apparemment jamais.

  14. #14
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    mercii beaucoup pour votre aide
    ici vous avez mis directement le chemin du fichier sans passer par parcourir ??

  15. #15
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    ouii c 'est bn j'arrive à les affichées je vais tester de les insérer sur la base de données merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii beaaaaaaaaaaaaaucoup

  16. #16
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    mercii pour vos aides, mais
    il m'affiche tjr une erreur quand j'essaie d'insérer les données dans la base de données sachant que id_etablissement auto incrément

    Notice: Undefined variable: ID in E:\wamp\www\import\index.php on line 92

    voilà mon code

    <?php

    $var="C:\don\donnees.csv";
    if (!file_exists($var)){ // le fichier n'existe pas
    echo('Fichier introuvable !<br>Importation stoppée.');
    }
    else
    {
    $fp = fopen($var, "r");

    while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
    foreach($liste as $file)

    $id_etablissement = $liste[0];
    $VIlle = $liste[1];
    $Secteur = $liste[2];
    $Etablissement = $liste[3];
    $FiliereDeFormation = $liste[4];
    $Niveau = $liste[5];
    $fiche =$liste[6];
    $ID== $liste[7];
    $query = "INSERT INTO etablissement ( id_etablissement, Secteur, Etablissement, FiliereDeFormation, Niveau , fiche, ID ) VALUES ('','$VIlle','$Secteur','$Etablissement', '$FiliereDeFormation','$Niveau ', '$fiche','$ID')";

    $result= mysql_query($query);
    echo "<br>".$file."<br>";



    }
    fclose($fp);
    echo("importation réussie des élèves");

    }

    ?>

  17. #17
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    Quand tu instancies la variable $ID dans ton code tu as écrit
    enlèves un des 2 '=' .

  18. #18
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    oui maintenant aucune erreur mais les données ne sont pas insérées dans la table

  19. #19
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Points : 100
    Points
    100
    Par défaut
    Tu insères 8 valeurs dans seulement 7 colonnes de la base de données.
    Les noms des colonnes doivent être entourés de guillemets simples, et pas de guillemets autour des variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "INSERT INTO etablissement ('id_etablissement', 'Secteur', 'Etablissement', 'FiliereDeFormation', 'Niveau', 'fiche', 'ID') VALUES ('', $VIlle, $Secteur, $Etablissement, $FiliereDeFormation, $Niveau, $fiche, $ID)";
    Vérifies la valeur de retour de mysql_query, qui renvoie true si réussi ou false dans le cas contraire.

  20. #20
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    merciii pour vos réponses
    oui c vrai j'ai une erreur dans la syntaxe de la requête et je crois dans la colonne auto incrément est ce que je dois insérer sa valeur dans la requête ??
    parce que il m'affiche une erreur

    Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id_etablissement','VIlle', 'Secteur', 'Etablissement', 'FiliereDeFormation', 'N' at line 1

    et voilà mon code


    <?php

    $var="C:\don\donnees.csv";
    if (!file_exists($var)){ // le fichier n'existe pas
    echo('Fichier introuvable !<br>Importation stoppée.');
    }
    else
    {
    $fp = fopen($var, "r");

    while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
    foreach($liste as $file)

    $id_etablissement = $liste[0];
    $VIlle = $liste[1];
    $Secteur = $liste[2];
    $Etablissement = $liste[3];
    $FiliereDeFormation = $liste[4];
    $Niveau = $liste[5];
    $fiche =$liste[6];
    $ID= $liste[7];
    $query = "INSERT INTO etablissement ( 'id_etablissement','VIlle', 'Secteur', 'Etablissement', 'FiliereDeFormation', 'Niveau' , 'fiche', 'ID' ) VALUES ($id_etablissement,$VIlle,$Secteur,$Etablissement, $FiliereDeFormation,$Niveau, $fiche,$ID)";

    mysql_query($query) or die ('Erreur : '.mysql_error() );



    }

    fclose($fp);
    echo("importation réussie des élèves");

    }

    ?>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Import fichier CSV
    Par oki972 dans le forum SQLite
    Réponses: 5
    Dernier message: 08/10/2007, 20h58
  2. [Pb Importation fichier CSV]
    Par Jeremie_Vi dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2007, 06h54
  3. Importation fichier CSV Excel
    Par @lex(is) dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/06/2006, 02h16
  4. Update de plusieurs tables, import fichier csv sql loader
    Par fusuke dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 18/05/2006, 15h08
  5. Réponses: 9
    Dernier message: 31/01/2006, 22h42

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