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

Langage PHP Discussion :

Script PHP pour remplir mysql avec un fichier Excel


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 217
    Points : 113
    Points
    113
    Par défaut Script PHP pour remplir mysql avec un fichier Excel
    Bonjour,

    je suis débutant en php et je cherchais une methode permettant de remplir une base de donnée via un fichier excel.

    En fait j'extrais le fichier excel à partir d'un grand serveur de base données puis avec ce fichier excel, je rempli la base de données de mon apllication.

    Cependant je voudrais d'abord tester le remplissage de ma base de données à partir d'un simple fichier excel avant de le faire en "vrai"

    Je suis tombé sur le script suivant :
    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    <html> 
    <head> 
    <title>Importer un fichier texte dans une bdd MySQL</title> 
    </head> 
    <body> 
    <h2>Importer un fichier texte dans une bdd MySQL</h2> 
     
    <?
    switch($action)
    {
      /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
       case "ajouter":
     
    /* Variables */
       $bdd = "*****"; /* Base de données */
       $host= "*****"; /* Hote (localhost en principe) */
       $user= "*****"; /* Utilisateur */
       $pass= "*****"; /* Mot de passe */
     
    /* Connexion bdd */
       @mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); 
       @mysql_select_db($bdd); 
     
    /* On cree la table */
    //if ($creertable)
    // {
    // $query = "CREATE TABLE $table( nom varchar(24),prenom varchar(24) )";
    // $result= MYSQL_QUERY($query);
    // }
     
    /* On ouvre le fichier à importer en lecture seulement */
    if (file_exists($fichier))
         $fp = fopen("$fichier", "r"); 
    else
         { /* le fichier n'existe pas */
           echo "Fichier introuvable !<br>Importation stoppée.";
           exit();
         }
     
        while (!feof($fp)) /* Et Hop on importe */
        { /* Tant qu'on n'atteint pas la fin du fichier */ 
           $ligne = fgets($fp,4096); /* On lit une ligne */  
     
           /* On récupère les champs séparés par ; dans liste*/
           $liste = explode( ";",$ligne);  
     
           /* On assigne les variables */ 
       $id = $liste[0]; 
       $id1 = $liste[1]; 
       $nom = $liste[2]; 
       $titre = $liste[3]; 
       $alt = $liste[4]; 
     
           /* Ajouter un nouvel enregistrement dans la table */ 
           $query = "INSERT INTO $table VALUES('$id','$id1','$nom','$titre','$alt')"; 
           $result= MYSQL_QUERY($query); 
     
           if(mysql_error())
            { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
               print "Erreur dans la base de données : ".mysql_error();
               print "<br>Importation stoppée.";
               exit();
            } 
           else /* Tout va bien */
             print "$id $id1 $nom $titre $alt<br>";
         } 
     
         echo "<br>Importation terminée, avec succès."; 
     
         /* Fermeture */ 
         fclose($fp); 
         MYSQL_CLOSE(); 
     
       break;
     
     
       /* FORMULAIRE DE CHOIX D'IMPORTATION */  
     
       default: 
       ?>  
       <? echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
         Pour ajouter ton serveur il suffit de remplir ce formulaire 
         <table border="0" cellspacing="0" cellpadding="3">
          <tr>
           <td>Table :</td> 
           <td> <input type="text" name="table"> </td> 
          </tr>
          <tr>
           <td>Fichier :</td> 
           <td> <input type="text" name="fichier"> </td> 
          </tr>
          <tr>
           <td>Créer table ? :</td> 
           <td> <input type="checkbox" name="creertable" checked> </td> 
          </tr>
          <tr>
            <td></td>  
           <td> <input type="submit" name="submit" value="Et HoP !"> </td> 
          </tr>
         </table>
         <input type="hidden" name="action" value="ajouter">  
        </form>
       <? 
       break;
     
       }
     
      ?>
     
    </body> 
    </html>
    j'ai ensuite essayer de l'adapter à mon code mais je ne sais pas trop comment remplir le formulaire pour le serveur. Quelles données mettre ? car moi j'ai dejà mis en place ma base de données qui fonctionne.En gros je n'ai pas besoin de recreer une table.

    Cependant quand j'enleve la partie remplissage du formulaire j'ai une erreur me disant que la variable "action" n'est pas définie.

    Si vous pouviez m'aidez à utiliser ce code je vous en serais tres reconnaissant.Si vous avez aussi d'autre piste plus importantes ou plus souple je suis preneur.

    Merci d'avance.

  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
    Ce script importe un fichier csv, pas un fichier xls.
    Quel est le format exact de ta source ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 217
    Points : 113
    Points
    113
    Par défaut
    Bonjour,

    Merci pour ta réponse.
    Et Oui en fait je ne l'avais pas ecris mais je savois que c'est un .ccv qu'il prendre (j'utilise php myadmin pour importer mon .xls)

    Sinon mon probleme c'est comment remplir le formulaire qeu j'obtiens pour le demarrage de l'execution.
    Il me propose de remplir un champ table et un champs fichier mais quend je les rempli avec une table qui existe deja dans ma base de donnees et mon fichier rien ne se passe

  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
    Je n'ai toujours pas compris si tu avais un CSV ou un XLS.

    Ton script est visiblement ancien. Il faudrait remplacer le valeurs venant du formulaire : $fichier par $_POST['fichier'], $action par $_POST['action'] etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Comment alimenter MYSQL avec des fichiers Excel en mode batch
    Par mabret dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/05/2008, 19h20
  2. [MySQL] Script PHP pour Menu déroulant ->BDD MySQL
    Par BENLEMALIN dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 06/12/2006, 16h12
  3. Recherche d'un script PHP pour renommer des fichiers en masse
    Par pekka77 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/11/2006, 23h43
  4. [[xml]->[php]->[MySQL]] script php pour lire du xml
    Par koudjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/06/2006, 03h18
  5. Réponses: 4
    Dernier message: 30/12/2005, 11h00

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