Importer un fichier CSV dans différentes tables

Résolu
cs_msslimani
Messages postés
4
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
9 septembre 2010
- 8 sept. 2010 à 02:53
cs_msslimani
Messages postés
4
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
9 septembre 2010
- 9 sept. 2010 à 21:20
Bonjour,
C'est mon premier message sur le forum.
J'ai un fichier Excel que j'ai converti en CSV.
J'aimerai l'importer dans ma base de données MySql.
Jusque là y a pas de probleme.
Mon problème: Importer ce fichier, mais dans différents champs de différentes tables
Est-ce possible?
Merci pour votre aide

7 réponses

syndrael
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
8 sept. 2010 à 08:26
Non, il te faudrait le diviser en plusieurs fichiers. ou alors faire du code.
S.
3
omarino_007
Messages postés
24
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
27 décembre 2010

8 sept. 2010 à 15:49
Tu peux d'abord importer les données telles quelles sont, puis avec sql faire des insert, update ...
3
kohntark
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
8 sept. 2010 à 21:51
Salut,

Que ce soit 8000 enregistrements ou 800000 ne change rien.

Perso je passerai par un script PHP, même fait à la va vite (pour le coup qu'importe le temps d'exécution ou la propreté du code)

Une petite boucle avec fgetcsv(), une insertion des valeurs du tableau retourné dans les bons champs/tables et le tour est joué.

$a = fopen(ton_fichier, r)
while($b = fgetcsv($a...) !== false) {
mysql_query("INSERT into machin (bidule, truc, ...) VALUES ($b[x], $b[z], ...);
mysql_query("INSERT into machine (trucmuche, bazar, ...) VALUES ($b[r], $b[y], ...);

}

Ca reste simple à faire, et même si tu es "nul de ce côté" tente tout de même d'écrire quelque chose, tu auras toute l'aide nécessaire sur ce forum.

Cordialement,

Kohntark -
3
cs_msslimani
Messages postés
4
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
9 septembre 2010

8 sept. 2010 à 21:25
1.Merci syndrael pour votre réponse, je vais voir avec le code quoique je suis nul de se côté.
2.Merci omarino_007 à vous aussi, ca parait facile mais j'ai un fichier avec 8000 fichies.
Merci comme même pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_msslimani
Messages postés
4
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
9 septembre 2010

8 sept. 2010 à 21:59
Merci kohntark
Comme vous dites je vais essayer d'ecrire quelque chose.
Très sympa de votre part
0
syndrael
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
9 sept. 2010 à 13:09
N'oublie pas d'inclure un effacement de tes tables avant de lancer ton script.. OU alors je vais peut etre augmenter le niveau d'exigence.. mais essaie d'inclure cela dans un mécanisme de gestion des erreurs de type: try/catch et de passer tes tables en InnoDB.. Pourquoi ??
Tout simplement parce que si tu commences ta floppée d'insert et si ça plante en plein milieu tu ne pourras pas relancer ton script si tu as une clé primaire..
Voilou..
S.
0
cs_msslimani
Messages postés
4
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
9 septembre 2010

9 sept. 2010 à 21:20
Merci pour ce message mais je suis désolé de vous décevoir : je n'ai rien compris
Merci comme même pour l'aide
0