supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Pilotes| Comparateur de prix| Dossiers| Forums| Jeux

11 messages
ok

[excel-PHP-Mysql] Importé des données... - Importer un tableau excel dans un BDD ..

Bonjour,
j'ai importer un tableau Excel, au format CSV, dans ma base de données MySql.
Tout fonctionne !
Cependant, il semble possible de créer un script PHP pour aller chercher mon fichier CSV et l'importer dans ma Base de Donnée ...

Est il possible de créer un macro dans Excel, qui permettrai d'exporter mon tableau au format CSv et de la charger sur ma BDD MySql ?

Sinon quelle méthode dois je adopté pour créer un script PHP efficace ?

merci :jap: :jap:
 
 
j'ai essayé la méthode suivante ... mais je ne comprend pas pourquoi je n'arrive pas a charger mon fichier ... snif

Code :
<?php
require('conf.php');
mysql_selectdb("gz") or die("Connexion impossible");
 switch($action)
 {
  /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
   case "ajouter":

 /* Variables */
   $bdd = "gz"; /* Base de données */
   //$host= "localhost"; /* Hote (localhost en principe) */
   //$user= "user; /* Utilisateur */
   //$pass= "motpasse; /* Mot de passe */
 $table = "gz";
 /* Connexion bdd */
   @mysql_connect($host,$user,$password) or die("Impossible de se connecter à la base de données"); 
  // @mysql_select_db($bdd); 
 
  
 /* 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]; 
       $cp = $liste[1]; 
    $ville = $liste[2]; 
       $tel = $liste[3]; 
    $client = $liste[4]; 
    
       /* Ajouter un nouvel enregistrement dans la table */ 
       $query = "INSERT INTO $table VALUES('$id','$cp','$ville','$tel','$client')"; 
       $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 $cp $ville $tel $client <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 width="357" border="0" cellpadding="3" cellspacing="0">
       <!--DWLayoutTable-->
      <tr>
       <td>Table :</td> 
       <td width="144"><!--DWLayoutEmptyCell-->&amp;nbsp;</td> 
       <td width="109"></td>
      </tr>
      <tr>
       <td height="28">Fichier :</td> 
       <td colspan="2" valign="top"> <input type="file" name="fichier"> </td> 
       </tr>
      <tr>
       <td>&amp;nbsp;</td> 
       <td>&amp;nbsp;</td> 
       <td></td>
      </tr>
      <tr>
        <td></td>  
       <td> <input type="submit" name="submit" value="Charger !"> </td> 
       <td></td>
      </tr>
     </table>
     <input type="hidden" name="action" value="ajouter">  
    </form>
   <? 
   break;
   
   }

  ?>


pourquoi il refuse d'ouvir mon fichier :riva:
je ne comprend pas ...
 
 
Juste un truc : MYSQL_QUERY, c'est mysql_query.

Pour le reste, le temps où un champ <input type="file" /> te créait une variable $fichier est révolu depuis longtemps. Soit bien sur de lire ça :

http://www.php.net/manual/fr/faq.misc.php#...registerglobals
http://www.php.net/manual/fr/features.file-upload.php

Tu verras que déjà, ça fonctionnera mieux :)

Et au passage, tu as la fonction file() qui te permet de retourner un tableau de lignes à partir d'un fichier.
 
 
en effet sans_nom ...
en ajoutant
Code :
enctype='multipart/form-data'

ça marche :super:
:jap: :jap:

par contre maintenant j'aiu un probleme de champ deja existant dans ma BDD .. je creuse .... :na:
 
 
raaa le saloupio ..
mon fichier excel contient des infos avec des
Code :
'
... resultat j'ai des erreur lors du chargement ... comment on fait deja pour eviter le contre des
Code :
'
en php ??? snif ....
 
 
Avec mysql_real_escape_string().
 
 
yes ! merci sans_nom :jap:

me reste plus qu'a trouvé comment faire pour ecrser toutes les données de ma BDD lorsquon charge un fichier CSV .....
reflexion jean pierre :heink:
 
 
Ben tu vides la table avant...
 
 
:MDR
exact ^^ je suis entrain de chercher la bonne technique :MDR

et voila :
Code :
$vider = "TRUNCATE TABLE $table";


ça roule !!! merci encore :jap: :jap:
mon code est certainement perfectible ! mais temps qu'il marche ! c'est le principale ^^ enfin pour moi :hello:

sans_nom = :super:
 
 
a non non non non non !

j'ai voulu sécurisé l'accès a ma page de mise a jourd e BDD, ça marche, mais je comprend pas pourquoi j'ai ce message :

Code :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent


???? :pt1cable: , c'est po possib' !
 
 
pffff,
dsl de vous avoir déranger pour rien ...

le session_start c'est avant tout code .. donc c'est bon !

merci encore :jap: :jap:
 
 
 
11 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com