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

Administration MySQL Discussion :

Importer CSV dans MySQL


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 72
    Points : 44
    Points
    44
    Par défaut Importer CSV dans MySQL
    Salut a tous,

    Je suis en train de developer une aplication qui importe des données contenues dans un fichier CSV dans une base de données MySQL mais j'obiten une erreur:

    Column count doesn't match value count at row 1

    Mon fichier CSV est separé par des ";" et j'ai 6 colones, le voici:

    135/80R13TL;INTENSA;MJ 683;T;Ligeiros;27,10 €
    145/80R13TL;INTENSA;MJ 683;T;Ligeiros;30,73 €
    155/80R13TL;INTENSA;MJ 683;T;Ligeiros;31,46 €
    et voici mon fichier php, ce code php je l'ai recuperé ici dans le forum et d'après son createur il funcionait, je n'ai fait que très peu de changements:

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    <?php 
    	//Connection a la db
    	include("../config.php");
    ?>
    <html>
    <head>
    <title>Importa&ccedil;&atilde;o de dados na tabela</title>
    </head>
    <body>
    <h2>Importa&ccedil;&atilde;o de dados na tabela</h2>
     
    <?php
     switch($action)
     {
      /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
       case "ajouter":
     
      // On ouvre le fichier à importer en lecture seulement 
     $fichier = $_FILES['fichier_u']['tmp_name'];
     if (file_exists($fichier))
         $fp = fopen("$fichier", "r");
     else
         { /* le fichier n'existe pas */
           echo "O ficheiro não foi encontrado !<br>A importação foi cancelada.";
           exit();
         }
     
        while (!feof($fp)) /* Et Hop on importe */
        { /* Tant qu'on n'atteint pas la fin du fichier */
           $ligne = fgets($fp,4096); /* On lit une ligne */ 
     
           /* On récupère les champs séparés par ; dans liste*/
           $liste = explode( ";",$ligne); 
     
           /* On assigne les variables */
           $val1 = $liste[0];
           $val2 = $liste[1];
           $val3 = $liste[2];
           $val4 = $liste[3];
           $val5 = $liste[4];
           $val6 = $liste[5];
     
           /* Ajouter un nouvel enregistrement dans la table */
           $query = "INSERT INTO $table VALUES('$val1','$val2','$val3','$val4', '$val5', '$val6')";
           $result= MYSQL_QUERY($query);
     
           if(mysql_error())
            { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
               print "Erro na base de dados : ".mysql_error();
               print "<br>Importação cancelada.";
               exit();
            }
           else /* Tout va bien */
             print "$val1 $val2 $val 3 $val4 $val5 $val6 <br>";
         }
     
         echo "<br>Importação terminada com sucesso.";
     
         /* Fermeture */
         fclose($fp);
         MYSQL_CLOSE();
     
       break;
     
     
       /* FORMULAIRE DE CHOIX D'IMPORTATION */ 
     
       default:
       ?>
    <?php echo "<form name='form1' method='post' action=".$_SERVER['PHP_SELF']." enctype='multipart/form-data'>"; ?> 
    Escolha a tabela na qual pretende importar os dados 
    <table border="0" cellspacing="0" cellpadding="3">
      <tr> 
        <td>Tabela :</td>
        <td> <select name="table" class="box_amostra" size="1" id="combustivel">
            <option value="Tabela" selected>Tabela</option>
            <option value="escapes">Escapes</option>
            <option value="escapes_oportunidades">Oportinidades Escapes</option>
            <option value="escapes_prom_mes">Promoção Escapes</option>
            <option value="pneus">Pneus</option>
            <option value="pneus_oportunidades">Oportinidades Pneus</option>
            <option value="pneus_prom_mes">Promoção Pneus</option>
          </select> </td>
      </tr>
      <tr> 
        <td>Ficheiro :</td>
        <td> <input type="file" name="fichier_u"> </td>
      </tr>
      <tr> 
        <td></td>
        <td> <input type="submit" name="submit" value="Inserir"> </td>
      </tr>
    </table>
         <input type="hidden" name="action" value="ajouter"> 
        </form>
       <?php
       break;
     
       }
     
      ?>
     
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    et ta table a quelle structure ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 72
    Points : 44
    Points
    44
    Par défaut
    ha oui tu as raison, j'ai oublié de metre la structure de mes tables, voici le SQL pour la creation de mes tables:

    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
     
    CREATE TABLE escapes (
      id_escapes INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      referencia VARCHAR(15) NOT NULL,
      modelo TEXT NOT NULL,
      preco FLOAT NOT NULL,
      PRIMARY KEY(id_escapes)
    );
     
    CREATE TABLE pneus (
      id_pneus INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      dimensao VARCHAR(15) NOT NULL,
      marca VARCHAR(20) NULL,
      modelo VARCHAR(20) NOT NULL,
      iv VARCHAR(5) NOT NULL,
      tipo VARCHAR(10) NOT NULL,
      preco FLOAT NOT NULL,
      PRIMARY KEY(id_pneus)
    );
     
    CREATE TABLE escapes_prom_mes (
      id_escapes INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      referencia VARCHAR(15) NOT NULL,
      modelo TEXT NOT NULL,
      preco FLOAT NOT NULL,
      PRIMARY KEY(id_escapes)
    );
     
    CREATE TABLE pneus_prom_mes (
      id_pneus INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      dimensao VARCHAR(15) NOT NULL,
      marca VARCHAR(20) NULL,
      modelo VARCHAR(20) NOT NULL,
      iv VARCHAR(5) NOT NULL,
      tipo VARCHAR(10) NOT NULL,
      preco FLOAT NOT NULL,
      PRIMARY KEY(id_pneus)
    );
     
    CREATE TABLE escapes_oportunidades (
      id_escapes INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      referencia VARCHAR(15) NOT NULL,
      modelo TEXT NOT NULL,
      preco FLOAT NOT NULL,
      PRIMARY KEY(id_escapes)
    );
     
    CREATE TABLE pneus_oportunidades (
      id_pneus INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      dimensao VARCHAR(15) NOT NULL,
      marca VARCHAR(20) NULL,
      modelo VARCHAR(20) NOT NULL,
      iv VARCHAR(5) NOT NULL,
      tipo VARCHAR(10) NOT NULL,
      preco FLOAT NOT NULL,
      PRIMARY KEY(id_pneus)
    );
    Merci pour te pencher sur mon probleme

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    il faut que la table dans laquelle tu insert ai 6 colonnes aussi, surtout si tu ne precide pas dans quel chmp tu insère
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2005
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Et pourquoi ne pas utiliser l'importation de phpMyAdmin, qui fait automatiquement?

  6. #6
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Et pourquoi ne pas utiliser l'importation de phpMyAdmin, qui fait automatiquement?
    Tu le diras au client

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 72
    Points : 44
    Points
    44
    Par défaut
    Je vous remercie a tous ceux qui se sont penché sur mon probleme, le probleme est resulu, au moment que je fesait l'insert dans la db, il manquai le nom des champs sur les quels j'alais inserer mes données.

    Voici le code corrigé si jamais quelqu'un en aurias besoin:

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    <?php 
    	//Connection a la db
    	include("../config.php");
    ?>
    <html>
    <head>
    <title>:.BORTEX - ADMIN .: Importa&ccedil;&atilde;o de dados</title>
    <script language="JavaScript" type="text/JavaScript">
     
     
    function ValidateForm(){
    	var tableID=document.frmSample.table
    	var ficheiro_uID=document.frmSample.fichier_u
     
     
    	 //Verifie si la table a été choisie
         if (tableID.value == "Tabela"){
         	alert("Tem que escolher uma Tabela")
            tableID.focus()
            return false
         }
     
           // Verifie si le fichier a importer a eté choisi
         if ((ficheiro_uID.value==null)||(ficheiro_uID.value=="")){
    		alert("Tem que escolher o fichiero que pretende importar!")
    		ficheiro_uID.focus()
    		return false
    	}
     
    	return true
     }
     
    //-->
    </script>
     
    </head>
    <body>
    <h2>Importa&ccedil;&atilde;o de dados </h2>
     
    <?php
     switch($action)
     {
      /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */
       case "ajouter":
     
      // On ouvre le fichier à importer en lecture seulement 
     $fichier = $_FILES['fichier_u']['tmp_name'];
     if (file_exists($fichier))
         $fp = fopen("$fichier", "r");
     else
         { /* le fichier n'existe pas */
           echo "O ficheiro não foi encontrado !<br>A importação foi cancelada.";
           exit();
         }
     
        while (!feof($fp)) /* Et Hop on importe */
        { /* Tant qu'on n'atteint pas la fin du fichier */
           $ligne = fgets($fp,4096); /* On lit une ligne */ 
           /* On récupère les champs séparés par ; dans liste*/
           $liste = explode( ";",$ligne); 
           /* On assigne les variables */
           $val1 = $liste[0];
           $val2 = $liste[1];
           $val3 = $liste[2];
           $val4 = $liste[3];
    	   $val5 = $liste[4];
           $val6 = $liste[5];
     
           /* Ajouter un nouvel enregistrement dans la table */
           $query = "INSERT INTO $table (dimensao, marca, modelo, iv,tipo, preco) VALUES('$val1','$val2','$val3','$val4', '$val5', '$val6')";
           $result= MYSQL_QUERY($query);
     
           if(mysql_error())
            { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
               print "Erro na base de dados : ".mysql_error();
               print "<br>Importação cancelada.";
               exit();
            }
           else /* Tout va bien */
             echo "Dados inseridos:<br>Valor 1 : ".$val1. " Valor 2 : ".$val2." Valor 3 : ".$val3. " Valor 4 :".$val4. " Valor 5 : ".$val5. " Valor 6 : ".$val6."<br><br>";
         }
     
         echo "<br>Importação terminada com sucesso.";
     
         /* Fermeture */
         fclose($fp);
         MYSQL_CLOSE();
     
       break;
     
     
       /* FORMULAIRE DE CHOIX D'IMPORTATION */ 
     
       default:
       ?>
    <?php echo "<form name='frmSample' method='post' action=".$_SERVER['PHP_SELF']." enctype='multipart/form-data' onSubmit='return ValidateForm()'>"; ?> 
    Escolha a tabela na qual pretende importar os dados 
    <table border="0" cellspacing="0" cellpadding="3">
      <tr> 
        <td>Tabela :</td>
        <td> <select name="table" class="box_amostra" size="1" id="combustivel">
            <option value="Tabela" selected>Tabela</option>
            <option value="escapes">Escapes</option>
            <option value="escapes_oportunidades">Oportinidades Escapes</option>
            <option value="escapes_prom_mes">Promoção Escapes</option>
            <option value="pneus">Pneus</option>
            <option value="pneus_oportunidades">Oportinidades Pneus</option>
            <option value="pneus_prom_mes">Promoção Pneus</option>
          </select> </td>
      </tr>
      <tr> 
        <td>Ficheiro :</td>
        <td> <input type="file" name="fichier_u"> </td>
      </tr>
      <tr> 
        <td></td>
        <td> <input type="submit" name="submit" value="Inserir"> </td>
      </tr>
    </table>
         <input type="hidden" name="action" value="ajouter"> 
        </form>
       <?php
       break;
     
       }
     
      ?>
     
    </body>
    </html>

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

Discussions similaires

  1. importer.csv dans mysql
    Par artichaudd dans le forum Débuter
    Réponses: 1
    Dernier message: 07/12/2011, 23h00
  2. [MySQL] Importation .csv dans mysql
    Par Chipss dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/09/2011, 00h11
  3. [MySQL] Import CSV dans MySQL
    Par ekzouille dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 28/09/2010, 17h49
  4. [MySQL] import csv dans mysql
    Par caro_tpl dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/10/2007, 14h37
  5. Import CSV dans Mysql
    Par wylls dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/01/2007, 13h47

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