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 :

Importer du texte dans une BDD [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut Importer du texte dans une BDD
    Bonjour a tous,
    je voudrais mettre du texte dans une bdd.


    Voici un code que j' ai modifié, mais qui a l'erreur :
    Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\code_pour_campagne_essais\Charge_texte_bdd.php on line 19
    probleme avec une variable je pense ( je ne connais pas l'anglais).

    Je precise que l'annonce met la ligne 19 sous erreur meme s'il n'y a rien a cette ligne lorsque je deplace les lignes de code pour essais.



    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
    <?php
    mysql_select_db('campagne_rapportside1');
    //on vide la table avant
      mysql_query("TRUNCATE TABLE campagne_rapportside1");
    // ouverture du fichier en lecture seule
       $monfichier = fopen("rapportside1.txt", "r");
    //on parcours tout le fichier
    while($data = fgets($monfichier, 4096)){ 
       $mysql_query=("INSERT INTO campagne_rapportside1 VALUE($data)";// On charge le texte dans la bdd
    }
    //On ferme le fichier
    fclose($monfichier);
    //On ferme la bdd
    MYSQL_CLOSE();
    ?>

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur réseaux
    Inscrit en
    Février 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 45
    Points : 101
    Points
    101
    Par défaut
    Bonjour,

    Essaye ce 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
     
    <?php
    mysql_select_db('campagne_rapportside1');
     
    //on vide la table avant
      mysql_query("TRUNCATE TABLE campagne_rapportside1");
     
     
    // ouverture du fichier en lecture seule
       $monfichier = fopen("rapportside1.txt", "r");
     
     
    //on parcours tout le fichier
    while($data = fgets($monfichier, 4096))
    { 
     
       $mysql_query=("INSERT INTO campagne_rapportside1 VALUE(".$data.")";// On charge le texte dans la bdd
    }
     
    //On ferme le fichier
    fclose($monfichier);
     
     
    //On ferme la bdd
    MYSQL_CLOSE();
     
     
    ?>
    J'ai simplement changé cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       $mysql_query=("INSERT INTO campagne_rapportside1 VALUE(".$data.")";// On charge le texte dans la bdd
    Cordialement.

    ZeRedDiamond

    I'm back after all these years !!!

    Mon blog personnel

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysql_query=("INSERT INTO campagne_rapportside1 VALUE($data)";// On charge le texte dans la bdd, mais on oublie de fermer la parenthèse (inutilement ouverte du reste) !
    Tout en sachant que de plus, non, tu ne charges pas de texte dans la BDD, tu ne fais rien d'autre que d'affecter une valeur à une variable...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mysql_query=("INSERT INTO rapportside1 VALUE($data)");// On charge le texte dans la bdd
    Je n'ai plus d'erreur.

    Pour le reste je regarde sur internet.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    J'ai cherché sur internet, et apres pas mal d'essais je suis au point de depart pour eviter de trop m'embrouiller, je n'avance plus, et les exemple données sur des cours sont trop basique pour ce que j'ai vu.


    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
    <?php
     mysql_select_db('test') or die(mysql_error());
     
     
    //on vide la table avant
      mysql_query("TRUNCATE TABLE campagne_rapportside1");
     
     
    // ouverture du fichier en lecture seule
      $monfichier = fopen("rapportside1.txt", "r");
     
    // //on parcours tout le fichier
    while($data = fgets($monfichier, 4096))
    { 
      $mysql_query=("INSERT INTO campagne_rapportside1(rapportside1) VALUE('$data')");
    }
    echo'Le texte a été chargé';
     
    //On ferme
    fclose($monfichier);
     
    MYSQL_CLOSE();
    ?>

  6. #6
    Invité
    Invité(e)
    Par défaut
    $mysql_query=("INSERT INTO campagne_rapportside1(rapportside1) VALUES ('$data')");

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    J'avais rectifié chez moi.

    J'ai vu pein d'autre code sur le net mais pas moyen de trouver le cas comme le mien, soit incomplet soit non rectifié.

    J'ai refait le code mais rien ne se rempli dans la bdd.

    //Fichier de connection sur wamp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    //connection 
    function connectMaBase(){
    $base = mysql_connect('localhost', 'root', ''); // Local host a la place de sql.free.fr
    mysql_select_db('campagne_rapportside1', $base);//On selectionne la base
    ?>
    Fichier sql:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE IF NOT EXISTS `campagne_rapportside1` (
      `id` int(32) NOT NULL AUTO_INCREMENT,
      `rapportside1` varchar(32) NOT NULL,
      `timestamp` int(255) NOT NULL,
      PRIMARY KEY (`id`)
    )


    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
    <?php
    // ouverture du fichier en lecture seule
      $monfichier = fopen("rapportside1.txt", "r");
    // //on parcours tout le fichier
      while($data = fgets($monfichier, 4096)){
    //On se connecte avec une function
      connectMaBase();
    $sql = 'INSERT INTO campagne_rapportside1 (rapportside1) VALUES("", "'.$data.'")';// Lancement de la requete
               /*on lance la commande (mysql_query) et au cas où, 
                on rédige un petit message d'erreur si la requête ne passe pas (or die) 
                (Message qui intègrera les causes d'erreur sql)*/
               mysql_query ($sql) or die ('Erreur SQL !' .$sql. '<br />'.mysql_error());
     echo'Le texte a été chargé';
    }
       MYSQL_CLOSE();
    //On ferme
       fclose($monfichier);
    ?>

    J'ai cette erreur :
    Parse error: syntax error, unexpected $end in C:\wamp\www\code_pour_campagne_essais\BDDcampagne.php on line 6
    Or je n'ai rien sur cette ligne... ou est l'erreur ?

    Merci pour votre aide.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bonjour j'ai rajouté a cette ligne, l'entrée qui manquait :
    Comment ai je pu l'oublier ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'INSERT INTO campagne_rapportside1 (rapportside1) VALUES("", "'.$data.'")';// Lancement de la requete
    Par contre j'ai toujours cette ligne:
    Parse error: syntax error, unexpected $end in C:\wamp\www\code_pour_campagne_essais\BDDcampagne.php on line 6

    Je n'ai rien sur cette ligne 6, je ne comprend pas ce que veux dire cette erreur ????

    Pouvez vous m'aider ?
    merci a tous.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    j'ai regardé les cours, les tuto et sur internet, depuis hier, mais rien n'y fait.
    Les texte importé sont des tableau, mon texte ne l'est pas, bref les code ne me semble pas adpaté a mon cas.

    J'ai pourtant fait bien des essais, j'ai toujours une erreur selon le code employé.

    là j'avance plus, une petite precision ou aide serait la bienvenu.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Patr77 Voir le message
    Parse error: syntax error, unexpected $end in C:\wamp\www\code_pour_campagne_essais\BDDcampagne.php on line 6
    Soit.
    Mais si tu ne nous montres pas le bout de code (Y COMPRIS LES LIGNES PRECEDENTES !!), on ne peut pas faire grand'chose...
    N.B. en indiquant, évidemment, laquelle est la "ligne 6" !

    + si tu ne comprends pas anglais, utilise un traducteur en ligne !
    C'est toujours mieux de comprendre le sens des phrases...

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Merci de me repondre, je commençais a deseperer.

    Voici le code, et a la ligne 6 il n'y a rien du tout, j'ai deja vu ce genre de probleme, mais je ne reussi pas a le resoudre, desolé pour mon incompetence, je debute en php.

    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
    <?php
    require'BDDcampagne.php';
    ?>
     
     
                    <<===cette ligne 6 pose un probleme au programme, alors que rien n'est ecrit ici dans mon programme.
    <?php
     
    // ouverture du fichier en lecture seule
       $monfichier = fopen("rapportside1.txt", "r");
     
    // //on parcours tout le fichier
    while($data = fgets($monfichier, 4096))
    {
     
    //On se connecte
      connectMaBase();
     
     
    $result = mysql_query('INSERT INTO campagne_rapportside1("rapportside1") VALUES("","'.$data.'")');// Chargement de la requete
     
                /*on lance la commande (mysql_query) et au cas où, 
                on rédige un petit message d'erreur si la requête ne passe pas (or die) 
                (Message qui intègrera les causes d'erreur sql)*/
                mysql_query ($result) or die ('Erreur SQL !'.$result.'<br />'.mysql_error()); 
     
                // on ferme la connexion
                mysql_close();
     
     
      echo 'Le texte a été chargé';
    }
     
      MYSQL_CLOSE();
    }
     
    //On ferme
      fclose($monfichier);
     
    ?>

  12. #12
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 43
    Points
    43
    Par défaut
    Ce qui est sûr, c'est que dans ton code, il y a une erreur à la ligne 35. l'accolade fermante est en trop, il faut l'enlever.

    Je ne comprends pas pourquoi tu ouvres et fermes une connexion à chaque boucle de ton while.

    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
     
    <?php
        require'BDDcampagne.php';
     
        // ouverture du fichier en lecture seule
    	$monfichier = fopen("rapportside1.txt", "r");
     
        //On parcours tout le fichier
    	//On se connecte
    	connectMaBase(); 
        while($data = fgets($monfichier, 4096)){
    		$result = mysql_query('INSERT INTO campagne_rapportside1("rapportside1") VALUES("","'.$data.'")');// Chargement de la requete
    		/*on lance la commande (mysql_query) et au cas où, 
    		on rédige un petit message d'erreur si la requête ne passe pas (or die) 
    		(Message qui intègrera les causes d'erreur sql)*/
    		mysql_query ($result) or die ('Erreur SQL !'.$result.'<br />'.mysql_error()); 
    		// on ferme la connexion
     
    		echo 'Le texte a été chargé';
        }
      	mysql_close();
        //On ferme
        fclose($monfichier);
    ?>
    Construction d'une piscine : http://www.construire-sa-piscine.com
    Livraison de fleurs pour particulier : http://www.fleurs-en-gros.com

  13. #13
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    require'BDDcampagne.php';
    ?>
    RELIS le message d'erreur :
    l'erreur se trouve ligne 6 du fichier BDDcampagne.php !!

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Merci Jreaux62,
    j'ai rectifié, je n'ai plus ce message, mais un autre maintenant :

    Erreur result !
    Query was empty

  15. #15
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 43
    Points
    43
    Par défaut
    Il faut faire des echo dans ton script notamment de ton $data pour voir si tes variables sont toutes bien initialisées.
    Construction d'une piscine : http://www.construire-sa-piscine.com
    Livraison de fleurs pour particulier : http://www.fleurs-en-gros.com

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    j'ai mis un echo $data;
    et toujours le meme dernier message.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Requete fausse (2 values pour un seul champ)
    + Le 2eme mysql_query est en trop.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    ...
        while( $data = fgets($monfichier, 4096) ){
    	$data = mysql_real_escape_string($data); // ATTENTION : il faut protéger la requete des injections SQL !!
    	$req_sql = "INSERT INTO campagne_rapportside1 (rapportside1) VALUES ('" . $data ."');"; // requete
    	$result = mysql_query ($req_sql) or die ('Erreur SQL !'.$req_sql.'<br />'.mysql_error()); // Là, tu fais autant d'enregistrements que de lignes du fichier ! Est-ce bien ce que tu veux ?
     
    	echo 'Le texte a été chargé'; // Pourquoi DANS le while ?? => ça va s'afficher autant de fois qu'il y a de lignes !
        }
    ...
    ?>
    Dernière modification par Invité ; 30/03/2015 à 06h23.

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    Merci pour ces eclaircissements Jreaux62
    Non je n'ai pas besoin d'avoir a refaire une enregistrement pour chaque ligne.

    Rien n'est enregistré dans la bdd du phpadmin.

  19. #19
    Invité
    Invité(e)
    Par défaut
    1/ Peux-tu montrer la structure de la table "campagne_rapportside1" ?

    2/ as-tu fait echo $data; pour vérifier ce que ça contient ?

    3/
    Citation Envoyé par Patr77 Voir le message
    Non je n'ai pas besoin d'avoir a refaire une enregistrement pour chaque ligne
    c'est pourtant ce que tu demandes : la requete s'exécute à chaque tour de boucle (= dans le while)

    Une solution :
    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
    <?php
    ...
        $datas = '';
        while( $ligne = fgets($monfichier, 4096) ){
    	$datas .= $ligne;
        }
     
        if( !empty($data) ){
    	$datas = mysql_real_escape_string($datas);
    	$req_sql = "INSERT INTO campagne_rapportside1 (rapportside1) VALUES ('" . $datas ."');";
    	$result = mysql_query ($req_sql) or die ('Erreur SQL !'.$req_sql.'<br />'.mysql_error());
    	echo 'Le texte a été chargé'; // Pourquoi DANS le while ?? => ça va s'afficher autant de fois qu'il y a de lignes !
        } else {
    	echo 'aucune donnée à enregistrer';
        }
     
    ...
    ?>
    Dernière modification par Invité ; 30/03/2015 à 13h03.

  20. #20
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2012
    Messages : 245
    Points : 52
    Points
    52
    Par défaut
    J'ai un:
    Parse error: syntax error, unexpected '.' in C:\wamp\www\code_pour_campagne_essais\Charge_texte_bdd.php on line 2

    D'autre part je ne comprend pas l'action de la 1 ere et la deuxieme ligne et la derniere ligne...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] insérer du texte dans une bdd
    Par esther60 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/06/2008, 17h05
  2. Réponses: 5
    Dernier message: 17/12/2007, 17h50
  3. probleme de taille d'import de fichier dans une bdd mysql
    Par laetiheu dans le forum Installation
    Réponses: 17
    Dernier message: 29/08/2007, 12h07
  4. insérer un fichier texte dans une bdd
    Par capucine1983 dans le forum JDBC
    Réponses: 14
    Dernier message: 22/07/2007, 02h31
  5. Réponses: 9
    Dernier message: 22/06/2007, 08h36

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