2010-09-21 1 views
2

Je souhaite télécharger des données via des fichiers CSV dans mon application de gestion des contacts. La structure du fichier CSV est comme ceci:Télécharger le fichier CSV et remplacer les données par des clés étrangères

Name, Phone, City 
John Doe, 555-555-5555, New York 

Bien que la structure de table dans la db est comme ceci:

name, phone, city_id 

Dans la base de données, le nom de la ville est stockée dans une autre table et la clé étrangère est référencé dans la table des contacts.

Ma question est de savoir comment puis-je remplacer les noms de villes dans le fichier CSV avec l'ID de la ville pour l'insertion dans db.

Informations générales: La langue est PHP et base de données est MySQL

Merci

Répondre

2

charge tout d'abord dans la table temporaire avec la structure (Nom, Téléphone, Ville), et après faire, insérer:

Select name, phone, city_id 
from temptable t, cities c 
WHERE t.city = c.CityName 
+0

+1 Pour utiliser une table temporaire pour effectuer l'importation. Vous devrez peut-être effectuer quelques vérifications de cohérence de base avant d'insérer les données dans la table réelle (c'est-à-dire vérifier si toutes les villes du CSV existent déjà dans votre table de ville). – wimvds

+0

Je pense que cette méthode serait trop chère (en termes d'efficacité) si j'ai trop d'enregistrements dans le fichier csv avec plus de 2 colonnes de clé étrangère. –

Questions connexes