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 20
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 3705 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 20
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
Rejoignez-nous