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

NodeJS Discussion :

Insertion de données en BdD


Sujet :

NodeJS

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 100
    Points : 91
    Points
    91
    Par défaut Insertion de données en BdD
    Bonjour, Je suis entrain de réalisé une application qui gère les travaux scientifiques.
    Le formulaire nouveau_travail.ejs permet d'enregistrer les données dans une table direction de la base des données crée en MySQL.
    Mais j'ai constate que la donnée qui est enregistrer dans la table sont des objets et non des textes.

    Voici les code du serveurs:
    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
    const mysql=require('mysql');
    const express=require('express');
    var app=express();
    const bodyparser=require('body-parser');
    const path=require('path');
     
     
    //ajout du middleware body-parser
    app.use(bodyparser.json());    
     
    //set upp public directory to serve static files
    console.log(__dirname)
    app.use(express.static('public'));
     
    //ouverture de la connexion à la bd
    var mysqlConnection=mysql.createConnection({
        host:'localhost',
        user:'root',
        password:'',
        database:'bdupc'
    }    
    );
     
    mysqlConnection.connect((err)=>{
        if(err)
        console.log('probleme de conexion:'+err);
        else console.log('connexion à la BD etablie...');
    });
     
    //ouveryure du serveur
    app.listen(8085,()=>{
        console.log('Serveur demarre au port :8085');
    });
     
    // settings
    app.set('views', path.join(__dirname, 'vue'));
    app.set('view engine', 'ejs');
     
    //routage de l'application
    //1. APPEL DU FORMULAIRE QUI AFFICHE LES DONNEES
     
    app.get("/",(req,resp)=>{
        //consultation de la bd
     
        //consultation de la bd
        mysqlConnection.query('select * from direction',(err,rows,fields)=>{
            if(err)console.log("Probleme de chargement de la BD");
            else{
                console.log(rows);
                resp.render('user_index',{
                    title:'DIRECTION TRAVAUX SCIENTIQUE',
                    data:rows
                });
            }
        });    
     
    });
     
    //2.APPEL DU FORMULAIRE DE SAISIE TRAVAIL
     
    app.get("/nouveau_travail",(req,resp)=>{
        resp.render('nouveau_travail',{
            title:'NOUVEAU TRAVAUX SCIENTIQUE'
        });
    });
     
    app.post("/save",(req,resp)=>{
        //insertion d'une donnée
        const data={nom_etudiant:req.body,prenom_etudiant:req.body,contact:req.body,
        sujet:req.body,statut:req.body};
        var sql="insert into direction set ? ";
     
        mysqlConnection.query(sql,[data],(err,fields)=>{
            if(err)console.log("Echec d'enregistrement à BD");
            else{
                console.log("Enregistrement effectuee");
                resp.redirect("/");
            }
        });
    });

    Pour ce qui du formulaire de saisie:
    Code html : 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
    <html>
        <head>
            <title></title>
            <link href="css/bootstrap.min.css" rel="stylesheet">
        </head>
        <body>
            <div class="container"><!--fin div container-->
                <h2><%= title %></h2>
                <form action="/save" method="post">
                    <div class="form-group">
                        <label for="nom_etudiant">Nom Etudiant</label>
                        <input type="text" name='nom_etudiant' class='form-control' size="30" id="nom_etudiant"
                          placeholder="Nom de l'étudiant" >
                    </div>
     
                    <div class="form-group">
                        <label for="prenom_etudiant">Prenom Etudiant</label>
                        <input type="text" name='prenom_etudiant' class='form-control' size="30" id="prenom_etudiant"
                          placeholder="Prenom de l'étudiant" required>
                    </div>
     
                    <div class="form-group">
                        <label for="contact">Contact</label>
                        <input type="text" name='contact' class='form-control' size="30" id="contact"
                          placeholder="Contact de l'étudiant" required>
                    </div>
     
                    <div class="form-group">
                        <label for="sujet">Sujet</label>
                        <textarea name="sujet" class='form-control' id="sujet" cols="50" rows="5"></textarea>
                    </div>
     
                    <div class="form-group">
                        <label for="statut">Statut</label>
                        <select name='statut' class='form-control'>
                            <option value="1">Travail encours</option>
                            <option value="0">Travail cloturé</option>
                        </select>
                    </div>
                    <button type='submit' class="btn btn-primary"> Sauvegarder</button>
                </form>
            </div><!--fin div container-->
        </body>
    </html>


    Mais au niveau de la base des données, ce qui est insére se présente comme suit:

    Nom : tables.png
Affichages : 1859
Taille : 14,9 Ko

    Pourriez vous me dire à quel niveau se situe le problème.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 100
    Points : 91
    Points
    91
    Par défaut
    J'ai retrouvé le problème, j'avais oublié de préciser le nom de champs provenant du formulaire de saisie où les données devraient
    être récupérées.

    La correction à faire :
    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
     
    app.post("/save",(req,resp)=>{
        //insertion d'une donnée
        const data={nom_etudiant:req.body.nom_etudiant,prenom_etudiant:req.body.prenom_etudiant,
            contact:req.body.contact,sujet:req.body.sujet,statut:req.body.statut};
        var sql="insert into direction set ? ";
     
        mysqlConnection.query(sql,[data],(err,rows,fields)=>{
            if(err)console.log("Echec d'enregistrement à BD");
            else{
                console.log("Enregistrement effectuee");
                resp.redirect("/");
            }
        });
    });

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/08/2014, 18h20
  2. Problème INSERT des donnée provenant d'un formulaire
    Par quentin74 dans le forum Langage
    Réponses: 10
    Dernier message: 04/07/2011, 10h36
  3. Empêcher l'insertion des données avec un trigger
    Par hazmza dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 24/06/2010, 16h24
  4. Oracle et insertion des données avec accents
    Par Lolitaaa dans le forum Oracle
    Réponses: 17
    Dernier message: 07/04/2009, 15h14
  5. [MySQL] Insertion des données avec les caractères spéciaux
    Par rachou59650 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/05/2008, 11h16

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