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

Requêtes MySQL Discussion :

Faire des jointures avec insert et CSV


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant webmaster
    Inscrit en
    Juin 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant webmaster
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 18
    Points : 22
    Points
    22
    Par défaut Faire des jointures avec insert et CSV
    Bonjour,

    Voici la structure de mon CSV :

    Siret;Raison sociale;Libellé forme juridique;Nom commercial;Enseigne;Code APE;Code APRM;Libellé APRM;Libellé NAR8 APRM siège;Voie;Complément de voie;Code postal;Bureau distributeur;Libellé Commune;Libellé canton;Téléphone;Email;Nom-Prenom;Libellé fonction;Libellé titre chef;LibelleQualif


    Voici mon code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <?php 
    // including the config file
    include('config.php');
    $pdo = connect();
     $time = date("Y-m-d H:i:s");
    $csv_file =  $_FILES['csv_file']['tmp_name'];
    if (is_file($csv_file)) {
    	$input = fopen($csv_file, 'a+');
    	// if the csv file contain the table header leave this line
    	$row = fgetcsv($input, 1024, ';'); // here you got the header
    	while ($row = fgetcsv($input, 1024, ';')) {
    		// insert into the database
    		$sql = 'INSERT INTO crma_craftman(siret, identification, legal_form, commercial_name, ape_code, synthesis, slug, updated_at, custom_activity ) VALUES(:siret, :raison_sociale, :forme_juridique, :nom_commerciale, :code_ape, :libelledeux, :enseigne, :aujourdhui, :libelleun );
    
    
    				INSERT INTO crma_adress(street1, street2, zip_code, city, canton, phonr_number, email) VALUES ( :voie, :complement, :codepostale, :commune, :canto, :telephone :email);'; 
     
    	//	$sqltrois = 'INSERT INTO `crma_actor` (`id`, `craftman_id`, `name`, `type1`, `type2`, `role`) VALUES (NULL, '', '', NULL, NULL, 'G')'; joindre id de actor à id de craftman
     
    // verif import ensuite faire le update 
    //UPDATE `crma_record` SET `state` = '3' WHERE `state` = '1' 
     
     
    		$query = $pdo->prepare($sql);
    		$query->bindParam(':siret', $row[0], PDO::PARAM_INT);
    		$query->bindParam(':raison_sociale', $row[1], PDO::PARAM_STR);
    		$query->bindParam(':forme_juridique', $row[2], PDO::PARAM_STR);
    		$query->bindParam(':nom_commerciale', $row[3], PDO::PARAM_STR);
    		$query->bindParam(':code_ape', $row[5], PDO::PARAM_INT);
    		$query->bindParam(':libelledeux', $row[8], PDO::PARAM_STR);
    		$query->bindParam(':enseigne', $row[4], PDO::PARAM_STR);
    		$query->bindParam('aujourdhui',$time, PDO::PARAM_INT);
    		$query->bindParam('libelleun', $row[7], PDO::PARAM_STR);
    		$query->bindParam('voie', $row[9], PDO::PARAM_STR);
    		$query->bindParam('complement', $row[10], PDO::PARAM_STR);
    		$query->bindParam('codepostale', $row[11], PDO::PARAM_INT);
    		$query->bindParam('commune', $row[12], PDO::PARAM_STR);
    		$query->bindParam('canto', $row[13], PDO::PARAM_STR);
    		$query->bindParam('telephone', $row[14], PDO::PARAM_INT);
    		$query->bindParam('email', $row[15], PDO::PARAM_STR);
    		$query->execute();
    	}
     
     
    }
     
    // redirect to the index page
    header('location: index.php');
    ?>


    Voici mon problème :

    Cela fais depuis longtemps que je n'ai pas fais de jointures et je m'arrache les cheveux.

    je dois importer un fichiers CSV dans une base de donéees MYSQL, mon problème arrive au niveau des jointures.

    Je dois relier l'ID auto incrémenté de la table crma_craftman à ma table crma_actor dans le champs craftman_id mais dans la même requetes car cela dois correspondre à une ligne de mon CSV.

    Je voudrais cette exemple d'insert de jointure après je m'occupe du reste.




    merci

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 384
    Points : 19 087
    Points
    19 087
    Par défaut
    Salut hiraku79.

    Pour insérer le contenu d'un fichier Excel au format ".csv", il faut utiliser le "load data local infile".
    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS trav
    --------------
     
    --------------
    CREATE TABLE trav (
      col_num   integer      null default null,
      col_date  datetime     null default null,
      lib       varchar(255) null default null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    LOAD DATA LOCAL INFILE 'fichier.txt'
         INTO TABLE `trav`
         CHARACTER SET latin1
         FIELDS TERMINATED            BY ';'
                OPTIONALLY ENCLOSED   BY '"'
                ESCAPED               BY '\\'
         LINES  TERMINATED            BY '\r\n'
         IGNORE 0 LINES
         (@F1, @F2, @F3)
         set col_num  = trim(@F1),
             col_date = str_to_date(trim(@F2), '%d/%c/%Y %H:%i:%s'),
             lib      = trim(@F3)
    --------------
     
    --------------
    select * from trav
    --------------
     
    +---------+---------------------+--------------------+
    | col_num | col_date            | lib                |
    +---------+---------------------+--------------------+
    |    NULL | 2014-05-10 15:33:17 | web                |
    |     125 | 2014-05-15 23:53:59 | alpha; beta; gamma |
    |    -247 | NULL                | zéro               |
    +---------+---------------------+--------------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Et voici le fichier à charger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    \N;"10/5/2014 15:33:17";"web"
    125;"15/5/2014 23:53:59";"alpha\; beta\; gamma"
    -247;\N;"zéro"
    Le séparateur de champs est le point-virgule.
    Le fichier et de type windows. La fin de ligne est "\n\r".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. [EasyPHP] impossible de faire des URLS avec variable
    Par SandraG dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 30/03/2006, 17h38
  2. faire des liens avec le resultat de ma requete mysql
    Par rane dans le forum Requêtes
    Réponses: 12
    Dernier message: 10/03/2006, 17h29
  3. [VB.Net] Faire des onglets avec Webmatrix
    Par ellyne dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/01/2006, 12h03
  4. [Son] Faire des bruits avec une application java
    Par mammistegon dans le forum Multimédia
    Réponses: 6
    Dernier message: 22/01/2005, 17h17
  5. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08

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