Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

je cherche à obtenir un résultat assez similaire à ce site : https://www.tutorialkart.com/nodejs/node-js-mysql-select-from-query-examples/
dans la partie "Example to use Result Object of MySQL SELECT FROM query"

var mysql = require('mysql');

var conn = mysql.createConnection({
  database: 'nodejs',
  host: "localhost",
  user: "root",
  password: "****************"
});

conn.connect(function(err){ 
  if (err) throw err;

  conn.query('SELECT score FROM compte WHERE pseudo = "Coderman28" AND mdp = "Codermon@18"', function (err, result, fields) {
    // if any error while executing above query, throw error
    if (err) throw err;
    // if there is no error, you--- have the result
    // iterate for all the rows in result
    Object.keys(result).forEach(function(key) {
      var row = result[key];
      console.log(row.name)
    });
  });
})de pour bien le mettre en forme

Ce que j'obtiens

mais j'obtiens à la fin undefined

4 réponses


Bonsoir,
Quand tu dis que tu obtiens undefined, c'est bien ce qui est affiché dans la console par la ligne console.log(row.name)? Si c'est le cas, alors pour débuguer ce que je te conseil, c'est de faire un console.log(row) pour vérifier s'il y a des lignes dans ta base de donné qui correspondent à la query. Si tu as autre chose que undefined qui apparaît c'est certainement qu'il n'y a pas d'attribut row.name .
Bon courage

Bonsoir,
Si tu fais un select pour récupérer que le "score", c'est sure que tu n'auras pas le "name" dans les résultats

Bonjour,
Il est vrai. Je n'avais pas porté attention à ce détail, qui n'est pas tant un détail que ça.
Si tu remplaces "score" par * dans la requête, alors tu auras toutes les colonnes dans la réponse, Donc si la colonne "name" existe dans la base de donnée et qu'il y a bien un élément qui correspond à pseudo = "Coderman28" AND mdp = "Codermon@18" alors tu veras autre chose que undefined s'afficher dans la console.

Bonjour.

Si tu remplaces "score" par * dans la requête

Ce n'est pas une solution, car récupérer tous les champs de la table ce n'est pas nécessaire, surtout selon le nombre de champs dans la table et les données dont il a besoin.
Il est préférable de limiter les champd à récupérer avec ce dont on a besoin.