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 :

fichier .csv vers la base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut fichier .csv vers la base de données
    Bonjour,
    J'ai un problème d'insertion de mon fichier d'extension .CSV dans plusieurs tables de la base de données ... J'ai essayé de résoudre ça mais en vain :/

    Voilà les tables de ma base de données:
    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
     
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `demande`
     
    CREATE TABLE IF NOT EXISTS `demande` (
    `id_demande` int(11) NOT NULL auto_increment,
    `Borderaux_client` varchar(200) character set ascii default NULL,
    `Statut_Demande` varchar(50) character set ascii default NULL,
    `Ref_dossier` varchar(200) character set ascii default NULL,
    `Date_facture` varchar(50) character set ascii default NULL,
    PRIMARY KEY (`id_demande`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
     
     
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `demande_produit`
    --
     
    CREATE TABLE IF NOT EXISTS `demande_produit` (
    `id_demande` int(11) NOT NULL auto_increment,
    `Num_serie` varchar(50) character set ascii NOT NULL,
    `RMA` varchar(200) character set ascii default NULL,
    `Date_entee` varchar(50) character set ascii default NULL,
    `Date_retour` varchar(50) character set ascii default NULL,
    `Date_livraison` varchar(50) character set ascii default NULL,
    `Delai_general` varchar(50) character set ascii default NULL,
    PRIMARY KEY (`id_demande`,`Num_serie`),
    KEY `FK_demande_produit_Num_serie` (`Num_serie`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
     
     
     
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `demande_projet`
    --
     
    CREATE TABLE IF NOT EXISTS `demande_projet` (
    `id_projet` int(11) NOT NULL,
    `id_demande` int(11) NOT NULL,
    `Date_demande_projet` varchar(20) character set ascii default NULL,
    PRIMARY KEY (`id_projet`,`id_demande`),
    KEY `FK_Demande_projet_id_demande` (`id_demande`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `produit`
    --
     
    CREATE TABLE IF NOT EXISTS `produit` (
    `Num_serie` varchar(50) character set ascii NOT NULL,
    `Code_article` varchar(50) character set ascii default NULL,
    `Techno` varchar(200) character set ascii default NULL,
    `Designation` varchar(200) character set ascii default NULL,
    `Situation` varchar(40) character set ascii default NULL,
    `Remarques` varchar(50) character set ascii default NULL,
    `id_projet` int(11) NOT NULL,
    PRIMARY KEY (`Num_serie`),
    KEY `FK_Produit_id_projet` (`id_projet`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
     
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `projet`
    --
     
    CREATE TABLE IF NOT EXISTS `projet` (
    `id_projet` int(11) NOT NULL auto_increment,
    `Client` varchar(40) character set ascii default NULL,
    `Nom_projet` varchar(200) character set ascii default NULL,
    `Chef_de_Projet` varchar(200) character set ascii default NULL,
    `Statut` varchar(40) character set ascii default NULL,
    `OTP` varchar(40) character set ascii default NULL,
    PRIMARY KEY (`id_projet`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
     
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `transitaire`
    --
     
    CREATE TABLE IF NOT EXISTS `transitaire` (
    `nom_transitaire` varchar(50) character set ascii NOT NULL,
    `contact_info` varchar(20) character set ascii default NULL,
    PRIMARY KEY (`nom_transitaire`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `transit_produit`
    --
     
    CREATE TABLE IF NOT EXISTS `transit_produit` (
    `nom_transitaire` varchar(50) character set ascii NOT NULL,
    `Num_serie` varchar(50) character set ascii NOT NULL,
    `Date_transitaire` varchar(50) character set ascii default NULL,
    `Date_arrivee_France` varchar(50) character set ascii default NULL,
    `Delai_export` varchar(50) character set ascii default NULL,
    `Date_depart_France` varchar(50) character set ascii default NULL,
    `Delai_import` varchar(50) character set ascii default NULL,
    PRIMARY KEY (`nom_transitaire`,`Num_serie`),
    KEY `FK_Transit_produit_Num_serie` (`Num_serie`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    --------------------------------------------------------------------
    ****Pour mon fichier CSV il a les colonnes suivantes:
    techno,num_serie,code_article,date_entree,date_facture,date_transitaire,date_arrivee_france,date_depart_france,delai_export,
    date_retour,date_livraison,delai_import,delai_general,remarques

    *** Voilà plus claire concernant mon fichier CSV je vais écrire table.colonne pour savoir pour chaque colonne de la table la colonne du csv correspondante:

    produit.techno,produit.num_serie,produit.code_article,demande_produit.date_entree,
    demande.date_facture,transit_produit.date_transitaire,transit_produit.date_arrivee_france,
    transit_produit.date_depart_france,transit_produit.delai_export,demande_produit.date_retour,demande_produit.date_livraison,
    transit_produit.delai_import,demande_produit.delai_general,produit.remarques

    Merci pour votre comprehension

  2. #2
    Membre chevronné Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Par défaut
    Est-ce que tu pourrais poster la ou les erreurs ?

    Désolé mais j'ai cassé ma boule de cristal

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Justement je sais pas comment procéder :/ et je suis pressée par le temps j'ai cherché dans pas mal des forums mais ça marche pas!

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    J'attends vos suggestions impatiemment :/
    Merci d'avance

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    J'ai essayé de faire ce code comme test juste pour inserer les 3 colonnes de csv mais ça marche pas :

    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
     
    <?php  
    //connection au serveur  
    $cnx = mysql_connect( "localhost", "root", "" ) or die("Impossible de se connecter à la base de données" );  
    //sélection de la base de données:  
    $db = mysql_select_db( "alu" ) or die("Impossible de se connecter à la base de données" );  
     
    //récupération des valeurs des champs: 
    $borderaux_client = $_POST["borderaux_client"] ;  
    $nom_transitaire = $_POST["nom_transitaire"] ;  
     
    //trouver le nom de projet correspondant à la demande  
    $reponse= mysql_query("SELECT projet.nom_projet FROM demande_projet,demande,projet WHERE demande_projet.id_demande=demande.id_demande AND projet.id_projet=demande_projet.id_projet AND demande.borderaux_client='$borderaux_client'" )or die(mysql_error());  
     
    $donnees=mysql_fetch_array($reponse);  
    $nom_projet=$donnees['nom_projet'];  
    ?>  
    <br><br>  
    <p><strong>Nom projet</strong> :<?php echo $donnees['nom_projet'];?></p>  
    <input type="hidden" name="nom_projet" value=<?php echo $donnees['nom_projet'];?>>  
    <br/>  
    <?php  
     
    $req2 = "SELECT statut_demande FROM demande WHERE borderaux_client='".$borderaux_client."'";  
    $result3 = mysql_query($req2) or die('Erreur SQL !'.$req.'<br>'.mysql_error());  
    if ($result_statut = mysql_fetch_array($result3))  
     
    $statut_demande = $result_statut['statut_demande'];  
    if($statut_demande=="En cours" )  
    {  
    //on importe le fichier à inserer dans sql  
    $file=$_FILES["userfile"]["tmp_name"];  
     
    if (file_exists($file))  
    {  
    $open=fopen($file,"r" );  
    }  
     
    else  
    {  
    echo "Fichier introuvable !<br>Importation stoppée.";  
    exit();  
    }  
    while (($fileop=fgetcsv($open,1000,";" )) !==false)  
    {  
    $num_serie=$fileop[2];  
    $code_article=$fileop[3];  
    $designation=$fileop[1];  
     
    $reponse1 = mysql_query("SELECT * FROM produit where num_serie='$num_serie' " )or die( mysql_error() );  
    $i=0;  
    while($donnees=mysql_fetch_array($reponse1))  
    {  
    $i=1;  
    }  
    if($i==0)  
    {  
     
    $req = "SELECT id_projet FROM projet WHERE nom_projet='" . $nom_projet . "'";  
    $result = mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());  
     
    if ($result_projet = mysql_fetch_array($result))  
    $id_projet = $result_projet['id_projet']; // récupère id_projet dans le tableau résultat  
     
    $query = "INSERT INTO produit(num_serie,code_article,designation,id_projet)VALUES('$num_serie','$code_article','$designation','$id_projet')";  
    $requete1 = mysql_query($query, $cnx) or die( mysql_error() ) ;  
     
    $req1 = "SELECT id_demande FROM demande WHERE borderaux_client='" . $borderaux_client. "'";  
    $result1 = mysql_query($req1) or die('Erreur SQL !'.$req.'<br>'.mysql_error());  
    if ($result_demande = mysql_fetch_array($result1))  
    $id_demande = $result_demande['id_demande']; // récèpure id_demande dans le tableau résultat  
     
    $sql2 = "INSERT INTO demande_produit (id_demande,num_serie)  
    VALUES ('$id_demande','$num_serie')" ;  
    $requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;  
     
    $sql3 = "INSERT INTO transit_produit (nom_transitaire,num_serie)  
    VALUES ('$nom_transitaire','$num_serie')";  
    $requete3 = mysql_query($sql3, $cnx) or die( mysql_error() ) ;  
     
    //affichage des résultats, pour savoir si l'insertion a marché:  
    if($requete1 && $requete2 && $requete3)  
    {  
    echo("L'insertion a été correctement effectuée" ) ;  
    }  
    else  
    {  
    echo("L'insertion a échouée" ) ;  
    }  
    }  
    else{  
    echo"<SCRIPT language=\"Javascript\">  
    alert(\"Ce produit existe!\" );  
    window.location.replace(\"ajout_produit.php\" );  
    </SCRIPT>";  
    exit();  
    }  
    }  
    fclose($open);  
    print '<h2>Importation terminée</h2>';  
    }  
    else{  
    echo"<SCRIPT language=\"Javascript\">  
    alert(\"Cette demande est déjà close !\" );  
    window.location.replace(\"AjoutPr.php\" );  
    </SCRIPT>";  
    }  
    ?>


    et Quand j'execute voilà l'erreur que j'ai:
    "Incorrect string value: '\xB0 de S...' for column 'Num_serie' at row 1"
    Ils m'ont dit de travailler avec une boucle de deux dimensions pour lire le fichier et l'inserer dans ma base de données mais je sais pas comment!!

    et la deuxieme chose c'est que je sais pas comment inserer dans plusieurs table avec ce que mon fichier csv contient de colonnes.


    merci d'avance

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/08/2010, 16h29
  2. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  3. Réponses: 2
    Dernier message: 21/09/2007, 18h47
  4. Réponses: 6
    Dernier message: 18/07/2006, 20h32
  5. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 15h18

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