Page 1 sur 1

Excel et MySQL

Posté : 19 mai 2011, 10:27
par Tybaal
Bonjour,
ceci est mon premier message sur ce forum. J'ai recherché des réponses sur d'autres conversations mais malheureusement je n'ai pas encore trouvé mon bonheur. J'espère que vous pourrez m'aider.
Voilà mon problème :
J'ai réalisé une application php qui va permettre à des personnes d'accéder à un historique de formation effectuées par des collaborateurs.
Pour cela, j'ai créé une base de données MySQL avec 3 tables :

COLLABORATEUR (ID_COLLABORATEUR, NOM, PRENOM)
FORMATION (ID_FORMATIOIN, INTITULE, ORGANISME)
SUIVRE (#ID_COLLABORATEUR,# ID_FORMATION, DATE, DUREE)


On m'a donné un fichier excel comprenant une feuille avec plus de 3000 lignes avec comme ligne d'entête :
Nom | Prénom | Formation | Organisme | Année | Durée

Maintenant, j'aimerais savoir comment puis-je importer ce fichier excel dans les 3 tables de ma base. Je sais déjà que je peux exporter mon fichier excel en .csv, mais pour cela il faudrait créer plusieurs feuilles excel pour importer ce qui correspond à mes tables dans MySQL, et dans ce cas, je supprimerais les doublons, c'est là qu'est le problème!!!!!
Comment faire correspondre les "id" de mes différentes tables afin d'afficher des données correctes.
J'espère que vous comprendrez mon problème et que vous pourrez m'aider.
Merci d'avance.

Re: Excel et MySQL

Posté : 19 mai 2011, 10:34
par xTG
Faut jouer avec ce qu'il se trouve déjà dans la base quand tu tentes d'insérer une nouvelle ligne.
Quand tu traites ta ligne Excel faut faire une recherche pour voir si le collaborateur ou bien la formation existe pas déjà.
Si des données existent tu récupères leur ID.

En gros de l'insert sélectif. Car si une formation existe déjà tu vas pas l'insérer de nouveau, mais tu récupères son id pour la requête suivre.

Re: Excel et MySQL

Posté : 20 mai 2011, 15:41
par jef80
Ce genre de manip, je la fais comme ça :
Après avoir importé ton fichier Excel dans une table appelée table_excel par exemple,
appliquer les requêtes suivantes:
$sql = "INSERT IGNORE INTO COLLABORATEUR (ID_COLLABORATEUR, NOM, PRENOM) SELECT ID_COLLABORATEUR, NOM, PRENOM FROM table_excel";
$sql = "INSERT IGNORE INTO FORMATION (ID_FORMATIOIN, INTITULE, ORGANISME) SELECT ID_FORMATIOIN, INTITULE, ORGANISME FROM table_excel";
$sql = "INSERT IGNORE INTO SUIVRE (#ID_COLLABORATEUR, #ID_FORMATION, DATE, DUREE) SELECT #ID_COLLABORATEUR, #ID_FORMATION, DATE, DUREE FROM table_excel";

Re: Excel et MySQL

Posté : 25 mai 2011, 22:04
par dunbar