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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Importer des données texte et excel


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut [Forum] Importer des données texte et excel
    bonjour a tous
    j'ai un probleme avec mon code
    je veux importer des donnes de fichier txt et xls et csv dans une table mysql
    mais je n'arrive pas
    cette erreur s'affiche : undefined offset 2 in :.... on line 38
    ................ 3 in
    .
    .
    6 on line 42
    j'aimerai savoir est ce ke evec ce code je peux importer des donnees xls?
    aidez moi svp. je suis en pfe et je n'ai plus beaucoup de temps
    merci

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <html>
    <head>
    <style type="text/css">
    <!--
    .Style1 {
    	color: #80FFFF;
    	font-style: italic;
    }
    .Style2 {color: #000000}
    -->
    </style>
    </head>
    <body background="fond.jpg"> 
    <?php
     
     
    if (isset($_FILES['file'])) 
    { 
    $file = $_FILES['file']['tmp_name']; 
    $handle = fopen($file,'r'); 
    $row = 1; 
    $handle = fopen("$file", "r"); 
    include("config.inc.php");
    					mysql_connect("$serveur_bdd", "$login_bdd", "$pass_bdd") or die('Erreur de connection à la base de données');
    					mysql_select_db("$table_bdd") or die('Erreur de connection à la table');
    				$req="TRUNCATE TABLE `user`";
    				mysql_query($req);
    while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) 
    { 
     
    $n = count($data); 
    $row++; 
    for($i=0;$i<$n;$i=$i+7)
    {
    $id="'".$data[$i]."'";
    $nom="'".$data[$i+1]."'";
    $prenom="'".$data[$i+2]."'"; 
    $date_naiss ="'".$data[$i+3]."'"; 
    $tel="'".addslashes($data[$i+4])."'"; 
    $etablisse ="'".addslashes($data[$i+5])."'"; 
    $niveau ="'".addslashes($data[$i+6])."'"; 
     
    } 
    $reqinsert="INSERT INTO user VALUES(".$id.",".$nom.",".$prenom.",".$date_naiss.",".$tel.",".$etablisse.",".$niveau.");";
    // execution de requette insertion 
    mysql_query($reqinsert); 
    echo $reqinsert;
    echo '<br>';
     
    }
    mysql_close();
     
    fclose($handle); 
     
    }
     
    else 
    { 
    ?><form action="upload.php" method="post" enctype="multipart/form-data" name="form1"> 
    <pre class="Style1 Style2" >&nbsp;</pre>
    <h1 ><center>Chargement des donn&eacute;es :</h1>
    <hr width="25%" size="4" color="black"> 
    <br><br>
    <hr width="35%" size="2">
    <br>
    Fichier :  <input type="file" name="file"> 
    <input type="submit" name="Submit" value="valider"> 
    </form>
    <?php 
    } 
    ?>
    <br><br>
    <hr width="35%" size="2">
    </body></html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour et bienvenu sur le forum,

    Ta boucle for{} ne sert a rien puisque tu enumeres manuellement les champs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    merci pour la reponse mais ça n'a rien changé.
    je vais vous expliquer plus mon pb. en effet j'ai plusieurs fichiers txt et xls que contiennet plusieurs musures que je veux les importer vers ma table mesure.
    je vous assure ke j'ai testé plusieurs code mais aucun n'a fonctionné je vais devenir fou
    je veux savoir est ce ke je peux parcourir les fichiers ligne par ligne et importer chaque mesure a travers par exemple son titre ki precede cette mesure ou bien a travers l'en tete du fichier ki est le titre du fichier.
    merci pour votre aide.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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
    while (($data = fgetcsv($handle, 4096, ";")) !== FALSE) 
    { 
     
    $row++; 
    $id=$data[0];
    $nom=$data[1];
    $prenom=$data[2];
    $date_naiss=$data[3];
    $tel=addslashes($data[4]); 
    $etablisse =addslashes($data[5]); 
    $niveau =addslashes($data[6]); 
    $reqinsert="INSERT INTO user VALUES(".$id.",'".$nom."','".$prenom."','".$date_naiss."','".$tel."','".$etablisse."','".$niveau."');";
    // execution de requette insertion 
    mysql_query($reqinsert); 
     
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    cette foi ci ça ne m'affiche le meme message mais dans ma table ça ne m'affiche rien. avant dans ma table ça m'affiche comme ça :
    id nom prenom date_naiss tel etablisse niveau
    23
    0
    22
    96
    3
    mon fichier texte est comme suit :
    23
    dodo
    dadi
    11/12/87
    ASC
    3eme
    c'est juste un exemple simple, mes fichiers de mesures sont beaucoup plus compliqués.
    je vous en supplie il n'y a pas d'autres solutions?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde s'il n'y a pas une erreur dans la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_query($reqinsert); 
    echo mysql_error();
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    il me semble k'il n'y a pa d'erreur dans ma requete
    en tt ka merci pour l'aide je vais essayer une autre solution.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    S'il n'y a pas d'erreur alors les tes lignes sont inserées ou alors tu as vraiment mal reporté l'exemple a ton cas réel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    je ne comprends plus rien, je suis débordé, je n' arrive meme pas a développer un simple formulaire d'ajout.

  10. #10
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut importation de fichiers excel dans une table mysql en php
    salut ,
    j'ai un problème et j'ai essayé un code que j'ai trouvé dans le forum sauf qu' il m'a affiché ce message d'erreur : Call to a member function on a non-object in....line 74
    donc cette ligne : $db_s->query($sql);
    svp je suis en galère et je n'arrive pas à importer des données dans ma table à partir de fichers excel.
    merci pour votre aide.
    voici le 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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <h2>Administration des importations des fichiers excel</h2>
    <?php
    // Inclusion de la classe pour l'exportation excel => CSV
    require_once 'include/classe/excel/reader.php';
     
    // Définition des colonnes à prendre en compte pour chacun des fichiers
    $Carac_fichier = array(      'inv_utilisateur.xls' =>       array ('nom_bdd' => 'inv_utilisateur',       'nbr_col' => '8',      'nbr_depart' => 2),
                                        'inv_print.xls' =>                   array ('nom_bdd' => 'inv_print',             'nbr_col' => '6',      'nbr_depart' => 2),
                                        'inv_switch.xls' =>             array ('nom_bdd' => 'inv_switch',             'nbr_col' => '6',      'nbr_depart' => 2),
                                        'inv_licenece.xls' =>      array ('nom_bdd' => 'inv_licence',             'nbr_col' => '6',      'nbr_depart' => 2),
                                        'inv_pc.xls' =>                   array ('nom_bdd' => 'inv_pc',                   'nbr_col' => '65',      'nbr_depart' => 2)
                                        );
     
    if (!isset($_POST['fichiers']) )      $fichiers[] = "";
    else                                                $fichiers[] = $_POST['fichiers'];
    if (!isset($_POST['sendadd']) )            $sendadd = "";
    else                                                $sendadd = $_POST['sendadd'];
     
    $chemin = 'fichier/excel/';            // Répertoire contenant les fichiers
    $sql = '';                                    // Initialisation de la requête SQL.
    ?>      
     
     
    <form method="post" action="" enctype="multipart/form-data" />
          <strong>Fichiers : &nbsp;</strong>      <input type="file" name="fichiers[]" size="70" />
          <input type="submit" name="submit" value="Envoyer" /><input type="hidden" name="sendadd" value="ok"><br /><br />
          Vous pouvez importer les fichiers 
          <?php       foreach($Carac_fichier as $cle=>$valeur) echo '<strong>' .$cle.'</strong>,&nbsp;&nbsp;'; ?>
    </form>
    <?php
    if ($fichiers != "" && $sendadd == "ok")
    {
     
          // Upload du fichier sur le serveur
          // ==================================================================================
     
                // Enregistrement des noms de fichiers envoyés et temporaire
                $nom_du_fichiers = $_FILES['fichiers']['name'][0];
                $nom_du_fichiers_temporaire = $_FILES['fichiers']['tmp_name'][0];
     
                //Now it's OK, upload !
                if (@copy($nom_du_fichiers_temporaire, $chemin.$nom_du_fichiers))      // $chemin
                {
                      echo "Upload réussi du fichier : <strong>" .$nom_du_fichiers. "</strong>.<br />";
     
                      // Conversion du fichier sur le serveur
                      // ==================================================================================
     
                            // ExcelFile($filename, $encoding);
                            $data = new Spreadsheet_Excel_Reader();
                            // Set output Encoding.
                            $data->setOutputEncoding('CP1251');
                            $data->read($chemin.$nom_du_fichiers);
     
                            // Teste de l'existance du fichier dans le tableau $Carac_fichier
                            if ( isset($Carac_fichier[$nom_du_fichiers]) )
                            {
     
                                  echo "<br /><br /><strong>Début de la lecture du fichier excel ligne par ligne ... </strong><br /><br />";
     
                                  // Enregistrement du nombre de colonne à afficher
                                  $nom_bdd = $Carac_fichier[$nom_du_fichiers]['nom_bdd'];
                                  $nbr_col = $Carac_fichier[$nom_du_fichiers]['nbr_col'];
                                  $nbr_depart = $Carac_fichier[$nom_du_fichiers]['nbr_depart'];
     
                                  // Parcours du fichier excel
                                  error_reporting(E_ALL ^ E_NOTICE);
                                  for ($i = $nbr_depart; $i <= $data->sheets[0]['numRows']; $i++)
                                  {
                                        $sql = "INSERT INTO `" .$nom_bdd. "` VALUES ( '', ";
                                        for ($j = 1; $j <= $nbr_col; $j++)
                                        {
                                              if ( $j != $nbr_col )
                                                    $sql .= "'" .$data->sheets[0]['cells'][$i][$j]. "',";
                                              else
                                                    $sql .= "'" .$data->sheets[0]['cells'][$i][$j]. "');";            //echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
                                        }
                                        echo $sql . "<br />";
                                       $db_s->query($sql);    // c'est ici l'erreur
                                  }
     
                                  echo "<br /><strong> ... Fin de la lecture du fichier</strong>";
                            }
                            else
                                  $erreur = "Le fichier n'est pas référencé.";
                }
                else
                      $erreur = "Echec de l'upload du fichier <strong>!</strong>";
     
                echo '<br /><span class="text_alert">' .$erreur. '</span><br />';
     
                //Si le fichier temporaire n'a pas été effacé par le serveur 
                if (is_file($nom_du_fichiers_temporaire))
                      @unlink($nom_du_fichiers_temporaire);
    }
    ?>

Discussions similaires

  1. importer des données web sur excel
    Par irouni dans le forum Excel
    Réponses: 3
    Dernier message: 18/12/2007, 11h12
  2. Import des données oracle dans excel
    Par irouni dans le forum Excel
    Réponses: 7
    Dernier message: 10/12/2007, 15h47
  3. [Import] [2000] Importer des données venant d'excel
    Par DamKre dans le forum VBA Access
    Réponses: 27
    Dernier message: 05/06/2007, 12h38
  4. comment importer des données bo sur excel
    Par Gecl.paris dans le forum Deski
    Réponses: 1
    Dernier message: 12/02/2007, 10h54
  5. [VBA-E]Importer des données de fichiers excel fermés
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2006, 11h35

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