IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

comment créer un formulaire afin d'uploader un fichier csv pour qu'il puisse remplir une base mysql


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 173
    Points : 88
    Points
    88
    Par défaut comment créer un formulaire afin d'uploader un fichier csv pour qu'il puisse remplir une base mysql
    Bonjour,

    je souhaiterais créer un formulaire php qui upload un ficher csv afin de remplir une base mysql avec les info qu'il contient,

    seul probleme je ne peu pas utiliser le "load data infile" parceque le csv que j'utilise n'a pas du tout la meme structure que les tables, et que els info doivent être repartit sur plusieur table ayant un nombre et une denomination de colonne totalement diffrente

    exemple
    le csv :
    user,passe,ville, tel

    table1 :
    t_user,t_pass,t_indent....

    table2
    t_adresse,t_tel,t_city

    je voudrais que les colonnes "user" et pass du csv replisse t_user et t_pass t_ident resterai ide dans table 1

    je voudrais que les colonnes "ville" et "tel" du csv replisse t_tel et t_city t_adresse resterai vide dans table 2

    pouvez vous m'aider, parceque je suis un noob en la matiere, et je n'ai pas trouver sur les net les info qui pourrais m'y aider

    merci !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Le plus simple est quand même d'utiliser LOAD DATA INFILE vers une table d'importation temporaire puis d'exporter intelligemment les données importées vers les vraies tables à l'aide de requêtes INSERT... SELECT.

    En plus, comme ça restera du traitement de données en masse, ça sera plus efficace et plus rapide que de triturer les données du fichier CSV en PHP pour exécuter X requêtes d'insertion ligne par ligne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est pas vraiment le plus simple mais effectivement c'est le plus performant.

    Au détail près que si une opération d'insertion doit être validée par des procédures métier complexes en PHP alors il faut passer en mode itératif (ce que je fais la plupart du temps car je ne peux pas toujours m'offrir le luxe d'avoir des tables suffisamment carrées pour être à l'épreuve des erreurs d'insertion - existant oblige )

    Bref, regarde la syntaxe de LOAD DATA INFILE et de CREATE TEMPORARY TABLE. Je ne saurais que trop te conseiller d'utiliser des transactions si le moteur le supporte.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 173
    Points : 88
    Points
    88
    Par défaut
    merci pour ses reponses, entre temps je suis tomber une la fonction fgetcsv, mais effectivement je pense que crée une table temporaire pour pouvoir tavaille le csv avec des requete sql est beaucoup plus ineteressante

    y'a ti'l une fonction pour convertir directement un csv en table (qui tout seule convertisse les entete de colonne en champ) et les remplissent

    ou faut t'il la crée manuellement ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/09/2011, 17h59
  2. Comment créer un formulaire de recherche?
    Par Bird dans le forum ASP
    Réponses: 35
    Dernier message: 26/04/2009, 22h41
  3. Comment créer un formulaire indépendant
    Par amne26 dans le forum IHM
    Réponses: 3
    Dernier message: 04/11/2008, 21h01
  4. Réponses: 1
    Dernier message: 11/06/2008, 13h30
  5. Réponses: 7
    Dernier message: 01/08/2006, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo