Eylexander / Project-1B

Learning JS through Discord.js
MIT License
0 stars 0 forks source link

Difficulty understanding Databases #5

Closed Eylexander closed 2 years ago

Eylexander commented 3 years ago

Hey @dannyhpy ! Malgré tes nombreux efforts pour m'aider sur ma compréhension des Bases de Données, je viens souligner ici mes difficultés :

const getmoney = sql.prepare("SELECT * FROM money WHERE user = ? AND tag = ?"); const setmoney = sql.prepare("INSERT OR REPLACE INTO money (id, user, money) VALUES (@id, @user, @money);");

module.exports = { initDatabases, getmoney, setmoney }

- Exploiter la base de donnée. Simple commande qui affiche une valeur et l'incrémente de 1 à chaque commande : `money.js`

const { getmoney, setmoney } = require('C:/Users/Eylexander/Desktop/Projets/Project-1B/tools/dbUtils.js'); . . . module.exports.execute = async (client, message, args) => { let money; money = getmoney.get(message.author.id, message.author.tag) if (!money) { money = { id: ${message.author.id}-${message.author.tag}, user: message.author.id, money: 0 } } message.channel.send(You actually have ${money} money !) money++; // setmoney.run(money) };


- Faire marcher correctement la commande `money.js`, celle-ci ne reconnaissant pas les fonctions `.get()` et `.run()`

En te remerciant énormément bien évidemment.
Eylexander commented 3 years ago

Je pense que quand je vais m'y remettre là-dessus, je vais essayer de voir si en un seul bloc le code marche, comme ça je corrige pour un seul bloc, je vois ce qui marche pas, et je corrige mes exports (Je pense)

Eylexander commented 2 years ago

Je viens de relancer un commit avec un genre de patch, le système marche déjà mieux, le bot renvoie une réponse, créé bien un tableau avec les colonnes comme il faut. Seul bémol, je n'arrive pas à augmenter la valeur d'une case comme il se doit. En effet, pour essayer, lorsque l'on réalise la commande money, celle-ci nous affiche la valeur de la case et est censé l'augmenter de 1, malheureusement elle augmente de 1 à null (je t'invite à regarder le fichier Money.js dans Commands/Informations)

dannyhpy commented 2 years ago

Ça devrait être

    setmoney.run({
        id: message.author.id,
        user: message.author.tag,
        money : stats.money++
    })
Eylexander commented 2 years ago

Alors je viens de tester ça, et ça marche que partiellement, la valeur dans la colonne ne s'actualise pas, mais j'ai une valeur non-attribué qui elle est à jour unknown

Eylexander commented 2 years ago

J'ai rien dit, le problème venait du ++ que je viens de remplacer par +=1 qui marche parfaitement bien.

Merci !

dannyhpy commented 2 years ago

Ah oui ça a du sens, j'ai pas fait attention Tu pouvais utiliser ++stats.money à la place de stats.money += 1, ça fonctionne. Puisque stats.money++ renvoie la valeur actuelle puis rajoute + 1 seulement après