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 :

Problème LOAD DATA INFILE


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut Problème LOAD DATA INFILE
    Bonjour
    Je viens une fois de plus trouver chaussure à mon pied sur le forum car je ne trouve pas la solution à mon problème.
    Je possède une base avec une grande quantité de données. La manipulation de mise à jour est longue et fastidieuse puisque chaque table est rempli à l'aide de plusieurs fichiers csv.
    Pour accélérer le mouvement j'ai donc mis en place un script qui met à jour directement la base. Dans ce script j'utilise donc la syntaxe mysql LOAD DATA INFILE. Jusque là pas de problème à première vue l'importation des données via cette requête fonctionne (nombre de données importées cohérentes).
    En revanche le problème se pose par la suite lorsque je tente de faire des requêtes sur la base. Aucune données ne m'est retournée alors que lorsque l'on fait la mise à jour manuelle les requêtes fonctionnent correctement.
    De quoi cela peut-il venir ?
    Si vous avez une idée n'hésitez pas à laisser un message afin que je puisse avancer
    Merci d'avance

    Djilow

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Sans structure de tables, exemple de données et requête qui ne retourne rien, ça va être difficile de répondre !

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Le problème ne vient pas de mes mes requêtes (ou tables) puisque lorsque je fait une importation manuel des données tout fonctionne bien, je peux exécuter mes requêtes. En gros l'importation des données via LOAD DATA INFILE semble rendre mes données inexploitables par la suite ...
    Je voulais simplement savoir si ce problème été déjà arrivé à quelqu'un et s'il été possible de me guider

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Pour information si cela peut aider voici la requête que j'utilise pour importer les données
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $load="LOAD DATA LOCAL INFILE '/var/www/html/fichier.csv'
    	REPLACE
    	INTO TABLE infocarte
    	FIELDS
    		TERMINATED BY ';'
    	LINES
    		STARTING BY ''
    		TERMINATED BY '\n'";
    $exec= mysql_query($load)

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    La requête me semble correcte, surtout si tu dis que tu vois bien les lignes importées dans la table.
    l'importation des données via cette requête fonctionne (nombre de données importées cohérentes).
    Par contre, ce préalable d'importation réussie des lignes étant acquis, ceci est illogique :
    lorsque je fait une importation manuel des données tout fonctionne bien, je peux exécuter mes requêtes. En gros l'importation des données via LOAD DATA INFILE semble rendre mes données inexploitables par la suite ...
    As-tu essayé d'afficher le contenu de la table dans phpMyAdmin par exemple ?

    Je répète : sans structure de la table et exemple de données (à importer), il sera difficile d'analyser plus profondément le problème.

  6. #6
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Dans phpMyAdmin on visualise bien des données importées ce qui est d'autant plus troublant.
    Voici donc comme demandée la structure de mes tables
    Code sql : 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
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    -- phpMyAdmin SQL Dump
    -- version 2.11.6
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Mar 15 Juin 2010 à 09:23
    -- Version du serveur: 5.0.51
    -- Version de PHP: 5.2.6
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `test`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `carte`
    --
     
    CREATE TABLE `carte` (
      `emplacement` varchar(100) NOT NULL default '',
      `nom_equip` varchar(100) NOT NULL default '',
      `libelle` varchar(60) NOT NULL default '',
      `type_carte` varchar(50) NOT NULL default '',
      `carte_id` varchar(50) NOT NULL default '',
      `indice` varchar(4) NOT NULL default '',
      `serie` varchar(20) default NULL,
      `dateinsertion` varchar(20) default NULL,
      `ncarte` int(50) NOT NULL auto_increment,
      PRIMARY KEY  (`ncarte`),
      UNIQUE KEY `EMPLACEMENT` (`emplacement`,`serie`,`nom_equip`),
      KEY `CONTIENT_FK` (`nom_equip`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `equipement`
    --
     
    CREATE TABLE `equipement` (
      `nom_equip` varchar(100) NOT NULL default '',
      `type_equip` varchar(50) default NULL,
      `version` varchar(100) default NULL,
      `constructeur` varchar(30) NOT NULL default '',
      PRIMARY KEY  (`nom_equip`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `infocarte`
    --
     
    CREATE TABLE `infocarte` (
      `inf_id` varchar(50) NOT NULL default '',
      `libelle` varchar(50) NOT NULL,
      `EAN` varchar(60) NOT NULL default '',
      `SAP` varchar(60) NOT NULL default '',
      `UVN` varchar(50) NOT NULL default '',
      PRIMARY KEY  (`inf_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `possede`
    --
     
    CREATE TABLE `possede` (
      `ui` varchar(100) NOT NULL,
      `nom_topo` varchar(100) NOT NULL,
      `nom_equip` varchar(100) NOT NULL,
      PRIMARY KEY  (`nom_equip`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Et un exemple de données importées ?
    Et une requête qui ne donne pas de résultats ?

  8. #8
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Voici une des requêtes qui ne retourne rien
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT COUNT( e.nom_equip )
    FROM equipement AS e
    INNER JOIN possede AS p ON e.nom_equip = p.nom_equip
    WHERE e.type_equip = 'ne1660sm'
    En ce qui concerne un exemple de données je ne peux pas mettre les fichiers .csv il ne sont pas supportés ...
    Donc je vais mettre à la va vite quelques données
    Pour la table carte
    Code csv : 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
     
    /r01sr1/board#10;CCA..ADEQ.16A200M33;;CONGI;3AL78830AA;AE02;CL022443217;10/03/2002
    /r01sr1/board#11;CCA..ADEQ.16A200M33;;SERVICE;3AL78817AA;AE02;CL023240180;24-09-2002
    /r01sr1/board#12;CCA..ADEQ.16A200M33;;CONGI;3AL78830AA;AE02;CL022443184;10/03/2002
    /r01sr1/board#13;CCA..ADEQ.16A200M33;;A2S1;3AL78818AA;AC01;FA051259827;20-04-2005
    /r01sr1/board#22;CCA..ADEQ.16A200M33;;EQUICO;3AL78836AA;AM02;CL023841267;30-09-2002
    /r01sr1/board#23;CCA..ADEQ.16A200M33;;MATRIXN;3AL78848BA;AH01;CL023840519;25-09-2002
    /r01sr1/board#25;CCA..ADEQ.16A200M33;;L-16.1ND;3AL78897CA;AC01;FA022058452;19-08-2002
    /r01sr1/board#28;CCA..ADEQ.16A200M33;;L-16.1ND;3AL78897CA;AD01;FA023455928;23-08-2002
    /r01sr1/board#31;CCA..ADEQ.16A200M33;;S-4.1N;3AL78856BB;AG01;FA070260321;15-01-2007
    /r01sr1/board#32;CCA..ADEQ.16A200M33;;P4S1N;3AL78821BA;AF01;CL060227510;15-02-2006
    /r01sr1/board#33;CCA..ADEQ.16A200M33;;S-4.1N;3AL78856BB;AB01;FA023959805;27-09-2002
    /r01sr1/board#34;CCA..ADEQ.16A200M33;;L-16.2ND;3AL78899CA;AH01;FA043660934;09/07/2004
    /r01sr1/board#36;CCA..ADEQ.16A200M33;;P4S1N;3AL78821BA;AF01;CL063528741;26-10-2006
    /r01sr1/board#37;CCA..ADEQ.16A200M33;;L-16.1ND;3AL78897CA;AH01;FA043458480;25-08-2004
    /r01sr1/board#39;CCA..ADEQ.16A200M33;;S-4.1N;3AL78856BB;AB01;FA023959951;10/08/2002
    /r01sr1/board#40;CCA..ADEQ.16A200M33;;MATRIXN;3AL78848BA;AH01;CL023840265;21-09-2002
    /r01sr1/board#42;CCA..ADEQ.16A200M33;;T_BUS;3AL79088AC;AA01;FA023958447;10/01/2002
    /r01sr1/board#43;CCA..ADEQ.16A200M33;;T_BUS;3AL79088AC;AA01;FA023955559;10/01/2002
    /r01sr1sl13/daughter#01;CCA..ADEQ.16A200M33;;ICMI;3AL37558AB;AE01;CL050200885;29-01-2005
    /r01sr1sl13/daughter#02;CCA..ADEQ.16A200M33;;ICMI;3AL37558AB;AE01;YP073614200;30-09-2007
    /r01sr1sl22/daughter#01;CCA..ADEQ.16A200M33;;--------;3AL37558AB;AE01;----------------;--/--/--
    /r01sr1sl32/daughter#01;CCA..ADEQ.16A200M33;;IS-1.1;3AL78815AB;AE01;FA051661693;18-04-2005
    /r01sr1sl32/daughter#02;CCA..ADEQ.16A200M33;;IS-1.1;3AL78815AB;AE01;FA051661688;18-04-2005
    /r01sr1sl36/daughter#01;CCA..ADEQ.16A200M33;;IS-1.1;3AL78815AB;AE01;FA063556020;09/01/2006
    /r01sr1sl36/daughter#02;CCA..ADEQ.16A200M33;;IS-1.1;3AL78815AB;AE01;FA063556036;09/01/2006
    /r01sr1/board#08;ART..ACS216A700M16;;A2S1;3AL78818AA;AC01;FA070857205;20-02-2007
    /r01sr1/board#09;ART..ACS216A700M16;;A2S1;3AL78818AA;AC01;FA070857204;20-02-2007
    /r01sr1/board#10;ART..ACS216A700M16;;CONGI;3AL78830AD;AB03;FA070662573;16-02-2007
    /r01sr1/board#11;ART..ACS216A700M16;;SERVICE;3AL78817AA;AG02;FA070956409;03/01/2007
    /r01sr1/board#12;ART..ACS216A700M16;;CONGI;3AL78830AD;AB03;FA070662686;16-02-2007
    /r01sr1/board#22;ART..ACS216A700M16;;EQUICO;3AL78836AA;AQ03;FA070756682;15-02-2007
    /r01sr1/board#23;ART..ACS216A700M16;;MATRIXN;3AL78848BA;AP01;FA070657788;27-02-2007
    /r01sr1/board#25;ART..ACS216A700M16;;CO-16;3AL81434AA;AA01;FA070758173;23-02-2007
    /r01sr1/board#28;ART..ACS216A700M16;;CO-16;3AL81434AA;AA01;FA070758172;23-02-2007
    /r01sr1/board#30;ART..ACS216A700M16;;P4S1N;3AL78821BA;AF01;CL064508248;01/02/2007
    /r01sr1/board#31;ART..ACS216A700M16;;P4S1N;3AL78821BA;AF01;CL064508421;01/02/2007
    /r01sr1/board#40;ART..ACS216A700M16;;MATRIXN;3AL78848BA;AP01;FA070657789;27-02-2007
    /r01sr1/board#42;ART..ACS216A700M16;;T_BUS;3AL79088AC;AA01;FA070760174;20-02-2007
    /r01sr1/board#43;ART..ACS216A700M16;;T_BUS;3AL79088AC;AA01;FA070760195;20-02-2007
    /r01sr1sl08/daughter#01;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405648;16-02-2007
    /r01sr1sl08/daughter#02;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405622;16-02-2007
    /r01sr1sl09/daughter#01;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405675;15-02-2007
    /r01sr1sl09/daughter#02;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405656;16-02-2007
    /r01sr1sl22/daughter#01;ART..ACS216A700M16;;--------;3AL37558AB;AE01;----------------;--/--/--
    /r01sr1sl25/daughter#01;ART..ACS216A700M16;;SL-16.2C;1AB196370003;WM;FB2040;20-11-2006
    /r01sr1sl28/daughter#01;ART..ACS216A700M16;;SL-16.2C;1AB196370003;WM;FB2016;20-11-2006
    /r01sr1sl30/daughter#01;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405620;16-02-2007
    /r01sr1sl30/daughter#02;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405647;16-02-2007
    /r01sr1sl31/daughter#01;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405670;15-02-2007
    /r01sr1sl31/daughter#02;ART..ACS216A700M16;;ICMI;3AL37558AB;AE01;CL070405649;16-02-2007
    Pour la table equipement
    Code csv : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CCA..ADEQ.16A200M33;ne1660sm;4.4.B;ALCATEL
    ART..ACS216A700M16;ne1660sm;4.4.B;ALCATEL
    Pour la table infocarte
    Code csv : 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
    1AB152050001;Flash card 80Mo;3561296003511;600372;UVWMS0017
    1AB17634002;Flash card 256 MB;;;UVWMS0018
    1AB187280001;Module OPTO TRX 1.25GBE SFP-LX;3411942085821;112932;UVMSP0157
    1AB187280002;Module OPTO TRX 1.25GBE SFP-SX;3411942085838;112934;UVMSP0156
    1AB187280028;Module OPTO TRX 1.25GBE SFP-ZX;3561296031699;603940;UVMSP0158
    1AB187280031;Module OPTO TRX 1.25GBE SFP-LX;3411942085821;112932;UVMSP0157
    1AB187280033;Module OPTO TRX 1.25GBE SFP-SX;3411942085838;112934;UVMSP0156
    1AB187280042;Module OPTO TRX 1.25GBE SFP-ZX;3561296031699;603940;UVMSP0158
    1AB194670001;OPTO TRX SFP S-1.1 PLUGIN;3411942212302;129960;
    1AB194670002;OPTO TRX SFP L-1.1 PLUGIN;3411942212319;129962;
    1AB194670003;OPTO TRX SFP L-1.2 -40+85C LC;3411942212326;129963;
    1AB194670004;OPTO TRX SFP S-1.1 DDM;3411942212302;;
    1AB194670005;OPTO TRX SFP L-1.1 DDM;3411942212319;129962;UVMSP0207
    1AB194670006;OPTO TRX SFP L-1.2 DDM;3411942212326;129963;
    1AB194670007;OPTO TRX SFP S-1.1 DDM;3411942212302;;
    1AB196340001;CWDM 1470NM PIN PLUGIN;3561296032900;604071;
    1AB196340002;CWDM 1490NM PIN PLUGIN;3561296032917;604072;
    1AB196340003;CWDM 1510NM PIN PLUGIN;3411942212333;129964;
    1AB196340004;CWDM 1530NM PIN PLUGIN;3411942212340;129965;
    1AB196340005;CWDM 1550NM PIN PLUGIN;3411942212357;129966;
    1AB196340006;CWDM 1570NM PIN PLUGIN;3411942212364;129967;
    1AB196340007;CWDM 1590NM PIN PLUGIN;3561296032924;604073;
    1AB196340008;CWDM 1610NM PIN PLUGIN;3561296032931;604074;
    1AB196340009;CWDM 1470NM PIN PLUGIN;3561296032900;604071;
    1AB196340010;CWDM 1490NM PIN PLUGIN;3561296032917;604072;
    1AB196340011;CWDM 1510NM PIN PLUGIN;3411942212333;129964;
    1AB196340012;CWDM 1530NM PIN PLUGIN;3411942212340;129965;
    1AB196340013;CWDM 1550NM PIN PLUGIN;3411942212357;129966;
    1AB196340014;CWDM 1570NM PIN PLUGIN;3411942212364;129967;
    1AB196340015;CWDM 1590NM PIN PLUGIN;3561296032924;604073;
    1AB196340016;CWDM 1610NM PIN PLUGIN;3561296032931;604074;
    Pour la table possede
    Code csv : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HAUTS DE SEINE;U40ADEQ16A0200;CCA..ADEQ.16A200M33
    VAL D OISE YVELINES;U40ACS216A0700;ART..ACS216A700M16

    Si cela fonctionne on devrait tomber sur un résultat de requête égal à 2. Dans mon cas on tombe sur 0...

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Je viens de créer les tables et d'importer les données. La requête fonctionne.

    Dans la requête d'importation de données, tu adaptes bien sûr la requête au nom de table à alimenter, et éventuellement au nom du fichier source ?

  10. #10
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    L'importation a été faite à partir de ma requête avec des fichiers csv ?
    Pour ma part concernant l'importation j'adapte bien sur la requête en fonction de la table et du nom de fichier source, sinon mes tables ne se rempliraient pas de façon cohérentes

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Donc résumons nous...

    Tu as correctement importé les données dans les tables à l'aide des requêtes LOAD DATA INFILE adaptées à chaque nom de fichier csv et à chaque table.

    Les tables contiennent désormais les lignes importées.

    As-tu lancé la requête SELECT dans phpMyAdmin ?
    Ça marche chez moi, il n'y a pas de raison que ça ne retourne pas le résultat chez toi !

  12. #12
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Je viens de faire le test sous phpMyAdmin de la lancer la requête de base
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `possede` WHERE 1
    Je retourne bien les données contenues dans mes tables ce qui est normal
    Mais dès que l'on rentre dans des requêtes où il y a jointure entre deux tables là c'est le drame ...

    Je viens à l'instant de réimporter mes données manuellement via phpMyAdmin tout fonctionne à merveille, cela me laisse donc à penser que ma requête d'importation des données (LOAD DATA INFILE ...) comporte une erreur mais la dessus je sèche ...

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    La requête d'importation que tu as présentée dans un précédent message est bonne puisqu'elle fonctionne chez moi... à condition que le nom et le chemin du fichier d'import csv soient le bon et que le nom de la table soit le bon.

    Si tu alimentes toutes tes tables avec cette méthode, il faut adapter ton programme en conséquence, par exemple en mettant en variable dans un tableau le chemin du fichier csv et le nom de la table qu'il alimente.

  14. #14
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Allo la blague je pense que tu ne situes pas vraiment mon problème, alors je vais tenter de reformuler.
    Ma base de données est rempli du même nombre de données mais avec deux méthodes différentes.
    Première méthode: Manuellement importation de chacun des fichiers .csv via phpMyAdmin -> Importation longue et fastidieuse mais par la suite toutes mes requêtes fonctionnent correctement.
    Deuxième méthode: Importation de tout les fichiers .csv via un script php -> manipulation beaucoup plus rapide et simple pour l'administrateur. En revanche ces données semblent inexploitables puisque les mêmes requêtes que dans la première méthode ne fonctionne pas.

    Le problème ne se situe pas sur comment importer mes données sa je sais faire, le problème se situe dans le fait que l'importation via LOAD DATA INFILE semble endommager mes données et retourne la valeur 0 ou rien sur des requêtes comportant des jointures entre deux tables ...

    Voilà personnellement je peux difficilement être plus clair sur mon problème

  15. #15
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Si la deuxième méthode importe réellement les données avec le même résultat que la première (toutes les lignes sont correctement importées), il est totalement illogique que les requêtes d'interrogation fonctionnent après importation avec la première méthode et pas avec la seconde.

    J'ai donc l'impression que le problème se situe plutôt au niveau du programme php qu'au niveau de MySQL.

    D'autant plus qu'avec la structure de tables et le jeu de données que tu as fournis ici, j'ai pu importer les données sans problèmes avec des requêtes LOAD DATA INFILE et ta requête d'interrogation a également fonctionné.

    Au lieu d'utiliser le système d'importation de phpMyAdmin, importe les données avec des requêtes LOAD DATA INFILE que tu écris toi-même dans l'onglet SQL de phpMyAdmin comme je l'ai fait et vérifie si les données sont correctement importées. Soumets ensuite ta requête et tu devrais logiquement avoir ton résultat, comme je l'ai eu moi-même.

  16. #16
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Oui mais si je dois encore et toujours passer par phpMyAdmin je ne fait aucun gain de temps mais je vais tester afin de vérifier si mes requêtes fonctionnent correctement et si cela marche je les réintégrerais ensuite dans mon code php
    Je te tiens au courant
    En tout cas merci CinePhil de prendre le temps de répondre à mon problème

  17. #17
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Alors je viens de tester en passant mes requêtes LOAD DATA INFILE sous phpMyAdmin et comme d'habitude mes données sont bien importés. En revanche lorsque je fais une requête toujours sous phpMyAdmin celle-ci ne me retourne rien ...

  18. #18
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 148
    Points
    148
    Par défaut
    Sa y est j'ai enfin trouvé la solution et j'avais raison le problème résidait bien dans la requête LOAD DATA INFILE
    Il se trouve que Microsoft Excel dans ses fichiers au format .csv encode le retour à la ligne par "\r\n" et non pas par un "\n" comme je le pensais.
    Une requête correcte devient donc
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LOAD DATA LOCAL INFILE '/var/www/html/fichier.csv'
    	REPLACE
    	INTO TABLE bidulle
    	FIELDS
    		TERMINATED BY ';'
    	LINES
    		TERMINATED BY '\r\n'
    Merci quand même à toi CinePhil pour le temps passé à me répondre
    A +++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème LOAD DATA INFILE avec champs vide
    Par Tonii dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/08/2012, 14h02
  2. [MySQL] Problème LOAD DATA INFILE
    Par DjiLow dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/06/2010, 11h24
  3. Probléme avec load data infile
    Par Moez.B dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/08/2006, 10h01
  4. [MySQL] Problème avec LOAD DATA INFILE
    Par Pgs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/07/2006, 15h33
  5. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59

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