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 :

CSV -> MYSQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut CSV -> MYSQL
    Bonjour,

    Je suis entrain de faire une application qui gère des Devis... J'ai besoin d'importer des articles du PGI de la société ou je fais mon stage sur une base de données MYSQL. J'ai trouvé un script pas mal mais j'ai un petit soucis !

    En effet le script semble être bon, le soucis c'est que je n'ai toujours pas d'articles dans ma bdd MYSQL

    VOici le code:

    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
    <?php require_once('connexion.php'); 
    // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
    $sql=mysql_query("DELETE FROM ARTICLES");
     
    //=========================
    // Traitement des donnees
    //=========================
     
    //recupere le nom du fichier indiqué par l'user
    $fichier=$_FILES["userfile"]["name"];
     
    // ouverture du fichier en lecture
    if ($fichier)
    {
    //ouverture du fichier temporaire
    $fp = fopen ($_FILES["userfile"]["tmp_name"], "r");
    }
    else{
    // fichier inconnu
    ?>
    <p align="center" >- Importation échouée -</p>
    <p align="center" ><B>Désolé, mais vous n'avez pas spécifié de chemin valide ...</B></p>
    <?php
    exit();
    }
    // declaration de la variable "cpt" qui permettra de conpter le nombre d'enregistrement réalisé
    $cpt=0;
    ?>
    <p align="center">- Importation Réussie -</p>
     
    <p align="right"><a href="#bas">Bas de page</a></p>
     
    <?php
    // importation
    while (!feof($fp))
    {
    $ligne = fgets($fp,4096);
    // on crée un tableau des élements séparés par des points virgule
    $liste = explode(";",$ligne);
    // premier élément
    $liste[0] = ( isset($liste[0]) ) ? $liste[0] : Null;
    $liste[1] = ( isset($liste[1]) ) ? $liste[1] : Null;
    $liste[2] = ( isset($liste[2]) ) ? $liste[2] : Null;
     
     
     
    $champs1=$liste[0];
    $champs2=$liste[1];
    $champs3=$liste[2];
     
    // pour eviter qu un champs "nom" du fichier soit vide
    if ($champs1!='')
    {
    // nouvel ajout, compteur incrémenté
    $cpt++;
    // requete et insertion ligne par ligne
    // champs1 id en general dc on affecte pas de valeur
     
    mysql_query("INSERT INTO ARTICLES (RefA, NomFrsCol, PrixUA) VALUES('".$champs1."','".$champs2."','".$champs3."' )");
     
    $RefA="RefA";
    mysql_query("DELETE FROM ARTICLES WHERE (RefA='".$RefA."')");
     
     
     
    ?>
    <table width="505" border="1" align="center" cellpadding="0" cellspacing="0" bgcolor="#eeeeee">
    <tr>
    <td width="124">Eléments importés :</td>
    <td width="361"><?php echo $liste[0];?></td>
    <td width="361"><?php echo $liste[1];?></td>
    <td width="361"><?php echo $liste[2];?></td>
    </tr>
    </table>
    <?php
    }
    }
     
    // fermeture du fichier
    fclose($fp);
    //on supprime la derniere car elle est vide
     
     
    //==================
    // FIN
    //==================
    ?>
    <br><br>Nombre de valeurs nouvellement enregistrées: <b><?php echo $cpt;?></b>.<br><br>
     
     
    <a name="bas"></a>
    <p align="right"><a href="#haut">Haut de page</a></p><br>
    Merci par avance

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    SAlut ,

    je présume que tu n'as aucun message d'erreur ?

    je te conseil d'utiliser or die(mysql_error()); après chaques requetes pour voir de quoi il retourne !

    (et aussi de tester si tu entre bien dans les boucles...)
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mysql_query("INSERT INTO ARTICLES (RefA, NomFrsCol, PrixUA) VALUES('".$champs1."','".$champs2."','".$champs3."' )");
     
    $RefA="RefA";
    mysql_query("DELETE FROM ARTICLES WHERE (RefA='".$RefA."')");
    Je ne comprends pas bien à quoi peut servir ce DELETE après une INSERT, surtout compte tenu de la valeur de $RefA

    Je te conseil aussi de vérifier que tes requêtes soient bien effectuées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $resultat = mysql_query("INSERT INTO ARTICLES (RefA, NomFrsCol, PrixUA) VALUES('".$champs1."','".$champs2."','".$champs3."' )");
    if (!$resultat) {
        die('Erreur de requête : ' . mysql_error());
    }

  4. #4
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    Le DELETE sert à enlever les titres des colonnes
    RefA c'est la référence de l'article.. donc il suprimme juste la ligne des titres de colonnes..
    Ok je rajoute or die(mysql_error()); et je vous dis ce qu'il me sort ^^

  5. #5
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    Ok c'est une erreur de décimale ... c'est ce que je pensais...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorrect decimal value: 'PrixUA ' for column 'PRIXUA' at row 1

  6. #6
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    J'ai juste qu'a supprimé les titres avant l'importation et je pense que ca va marcher non ?

  7. #7
    Membre confirmé Avatar de Luisito31
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 239
    Par défaut
    grrr non le prix unitaire ne veut pas passer !! j'ai tester tout les type numeric à virgule mais toujours le même message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data truncated for column 'PRIXUA' at row 1
    snifff

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

Discussions similaires

  1. Import CSV dans Mysql
    Par wylls dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/01/2007, 13h47
  2. Import de fichier Excel (CSV) dans MySQL
    Par mathieu77186 dans le forum Outils
    Réponses: 2
    Dernier message: 27/03/2006, 23h23
  3. Importer CSV dans MySQL
    Par The_freeman dans le forum Administration
    Réponses: 6
    Dernier message: 14/02/2006, 22h18
  4. CSV vers MySQL
    Par simoryl dans le forum SGBD
    Réponses: 3
    Dernier message: 08/08/2005, 14h13
  5. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 19h14

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