remplir un base MySQL automatiquement à partir d'excel et dans différentes tables

antbal

Nouveau WRInaute
Bonjour à tous,

mon cas est un peu complexe. J'aimerai savoir si il serait possible à partir d'un fichier excel de remplir une base de données sur différentes tables. La base (en MySQL), les tables et les propriétés (types de data dans les tables), sont déjà crées devront pouvoir continuer d'être rempli par formulaire après ce remplissage. Les tables sont également reliées entre elles.

L'objectif est de remplir différentes propriétés (dans différentes tables) tout en reliant ces propriétés.

En bref, comment garder les relations des colonnes d'excel alors qu'elles vont être dispersée dans plusieurs table, tout en ayant un remplissage automatique ?


exemple : j'ai une liste d'entreprise, leurs adresses et leurs numéro de téléphone, fax et email et service

Ma table principale est entreprise qui contient en propriétés (nom, années de création, CA, ect)
mes tables secondaires sont :
-contacts avec comme propriétés : nom du service, téléphone, email, fax
-sites avec comme propriétés : adresse, ville, pays et code postal


si les tables secondaires existent c'est parce qu'une entreprise peut avoir plusieurs sites et plusieurs services.

Peut importe la mise en forme sous excel je peux la retoucher selon vos solutions (si elles existent).


Merci d'avance
 

KOogar

WRInaute accro
1° exporter votre fichier au format CVS standard depuis excel
2° placez votre fichier dans un tableau ligne par ligne

Code:
if (($handle = fopen("files/".$_nomdufichier."", "r")) !== FALSE) {

   while (($data = fgetcsv($handle, 3000, ",")) !== FALSE) {
        $num = count($data);
        $row++;
        for ($c=0; $c < $num; $c++) {
            $tab[] = $data[$c];
        }
    }
}
 fclose($handle);

3° ensuite il vous faut tester chaque ligne selon vos besoins

Code:
$i=0;
while ($i < count($tab)) {
   preg_match_all('#([^;]+)#',$tab,$out);
   
   if (condition)    UPDATE(table  SET champ = $out[0][1] )
  
}

Koogar
 

Discussions similaires

Haut