Boucle while pour bot discord
Résolu
David987
Messages postés
120
Date d'inscription
Statut
Membre
Dernière intervention
-
David987 Messages postés 120 Date d'inscription Statut Membre Dernière intervention -
David987 Messages postés 120 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais effectuer une boucle sur une requête afin que mon bot sur discord me liste toutes les entrées d'une seul table sur 1 seul champ.
Je m'éxplique, j'ai une table avec 3 champs (id, sigle, description), j'aimerais que mon bot me liste tous les sigles seulement.
Voici le code que j'ai actuellement qui me permet mais je ne vois pas comment faire pour ajouter la boucle :
Actuellement, si je tape la commande +allsigle, il me donne le premier sigle de ma table, comment l'adapter pour obtenir toutes les entrées ?
Merci pour votre réponse.
J'aimerais effectuer une boucle sur une requête afin que mon bot sur discord me liste toutes les entrées d'une seul table sur 1 seul champ.
Je m'éxplique, j'ai une table avec 3 champs (id, sigle, description), j'aimerais que mon bot me liste tous les sigles seulement.
Voici le code que j'ai actuellement qui me permet mais je ne vois pas comment faire pour ajouter la boucle :
//listage des sigle déjà enregistré else if (message.content.startsWith(prefix + "allsigle")){ message.delete(); pool.query(`SELECT * FROM abreviation`, function (err, results) { if ( results[0] ) { pool.query(`SELECT * FROM abreviation`, function(err) { if ( err ) throw err; }) let embed = { color: 0x000000, title: '__**Liste complète des abréviations connues du bot actuellement: **__', description: '**' + (`${results[0].sigle}`) + '**' + '\n', timestamp: new Date(), }; message.channel.send({ embed: embed }); console.log(`${message.author.username} a consulté la liste des sigles`) } else { message.channel.send(`${message.author}` + 'Sigle inconnu actuellement !'); console.log(`${message.author.username} a tenté de regarder un sigle inexistant.`) } }) return; }
Actuellement, si je tape la commande +allsigle, il me donne le premier sigle de ma table, comment l'adapter pour obtenir toutes les entrées ?
Merci pour votre réponse.
A voir également:
- Boucle while pour bot discord
- Discord pour mac - Télécharger - Téléphonie & Visio
- Bash do while ✓ - Forum Shell
- Compte discord - Guide
- Echo discord - Forum Casque et écouteurs
- Discord ne se lance pas - Forum Audio
3 réponses
Bonjour,
Je viens montrer un test qui ne fait pas planter le bot mais qui ne m'affiche pas toutes les entrées de ma table :
Help me please.
Je viens montrer un test qui ne fait pas planter le bot mais qui ne m'affiche pas toutes les entrées de ma table :
//listage des sigle déjà enregistré else if (message.content.startsWith(prefix + "allsigle")){ message.delete(); var suffix = message.content.split(" ").slice(1).join(" "); pool.query(`SELECT * FROM abreviation`, function (err, results) { if ( results[0] ) { pool.query(`SELECT * FROM abreviation`, function(err) { if ( err ) throw err; }) while (`${results[0].sigle}` > 0) { let embed = { color: 0x000000, title: '__**Liste complète des abréviations connues du bot actuellement: **__', description: '**' + (`${results[0].sigle}`) + '**' + '\n', timestamp: new Date(), }; message.channel.send({ embed: embed }); console.log(`${message.author.username} a consulté la liste des abréviations`) } } else { message.channel.send(`${message.author}` + 'Je ne connais pas encore toutes les abréviations de coc, mon encyclopédie s\'enrichit de jours en jours grâce à toi !'); console.log(`${message.author.username} a tenté de regarder la liste des abréviations.`) } }) return; }
Help me please.
Salut,
pourquoi ne pas faire cela directement au niveau de la base de donnée, lors de la requête SQL?
Cela semble plus logique et éviterait d'avoir à faire des contorsions en PHP et est assez simple à écrire:
https://sql.sh/cours/select
pourquoi ne pas faire cela directement au niveau de la base de donnée, lors de la requête SQL?
Cela semble plus logique et éviterait d'avoir à faire des contorsions en PHP et est assez simple à écrire:
SELECT nomduchamp FROM nomdelatable;
https://sql.sh/cours/select
bonjour,
Merci pour ton aide, alors j'ai fais comme tu m'as dis :
Sauf que le problème c'est qu'il ne met pas les champs de la tables mais une liste de [object Object],[object Object],
une idée ?
Merci pour ton aide, alors j'ai fais comme tu m'as dis :
else if (message.content.startsWith(prefix + "allsigle")){ message.delete(); var suffix = message.content.split(" ").slice(1).join(" "); pool.query(`SELECT sigle FROM abreviation`, function (err, results) { if ( results[0] ) { pool.query(`SELECT sigle FROM abreviation`, function(err) { if ( err ) throw err; }) var nbr_entree = 0; let embed = { color: 0x000000, title: '__**Liste complète des abréviations connues du bot actuellement: **__', description: '**' + (`${results}[0].sigle`) + '**' + '\n', timestamp: new Date(), }; message.channel.send({ embed: embed }); console.log(`${message.author.username} a consulté la liste des abréviations`) } else { message.channel.send(`${message.author}` + 'Utilise la commande +commandes pour obtenir ce que je peux faire !'); console.log(`${message.author.username} a tenté de regarder la liste des abréviations.`) } }) return; }
Sauf que le problème c'est qu'il ne met pas les champs de la tables mais une liste de [object Object],[object Object],
une idée ?
Bonsoir et merci pour ta réponse,
Justement c'est ça le problème, c'est que je ne sais pas comment la faire la boucle avec node js.
Voici mon code :
j'ai bien tous les bons résultats dans ma console, ça me met ça :
RowDataPacket < sigle: 'nom' >, (91 fois puisqu'il y à 91 lignes dans ma table)
Si tu peux m'aider pour faire cette boucle, je suis preneur.
Justement c'est ça le problème, c'est que je ne sais pas comment la faire la boucle avec node js.
Voici mon code :
//listage des sigle déjà enregistré else if (message.content.startsWith(prefix + "allsigle")){ message.delete(); var suffix = message.content.split(" ").slice(1).join(" "); pool.query(`SELECT sigle FROM abreviation`, function (err, results) { if ( results[0] ) { pool.query(`SELECT sigle FROM abreviation`, function(err) { if ( err ) throw err; }) var nbr_entree = 0; let embed = { color: 0x000000, title: '__**Liste complète des abréviations connues du bot actuellement: **__', description: '**' + results + '**' + '\n', timestamp: new Date(), }; message.channel.send({ embed: embed }); console.log(`${message.author.username} a consulté la liste des abréviations`) console.log(results) } else { message.channel.send(`${message.author}` + 'Utilise la commande +commandes pour obtenir ce que je peux faire !'); console.log(`${message.author.username} a tenté de regarder la liste des abréviations.`) } }) return; }
j'ai bien tous les bons résultats dans ma console, ça me met ça :
RowDataPacket < sigle: 'nom' >, (91 fois puisqu'il y à 91 lignes dans ma table)
Si tu peux m'aider pour faire cette boucle, je suis preneur.
Et ça fonctionne pas, la boucle ne m'affiche pas la liste de ma table, par contre ma console m'affiche bien le message que je veux qu'elle m'affiche.