Closed Eylexander closed 1 year ago
Ta colonne user
dans ta table tool
est en UNIQUE. Donc il ne peut y avoir qu'une entrée TODO par utilisateur. Il faut modifier ta table
Donc je dois modifier cette ligne de commande qui se trouve dans tools/dbUtils.js ?
tool.prepare("CREATE UNIQUE INDEX idx_devtool_id ON tool (user);").run();
Oui, tu devrais retirer la contrainte UNIQUE
si tu veux permettre à l'un d'avoir plusieurs éléments dans sa todo-list
J'ai essayé de faire ainsi, mais j'ai des résultats concluant seulement en supprimant la ligne d'index. De plus je n'arrive pas à faire en sorte de numéroter chacune de mes additions.
Pourquoi tu voudrais numéroter tes additions ? Si tu souhaites rajouter un ID à chaque tâche de la liste, je te suggère de créer une colonne "auto-incrémentée" pour cela
J'ai essayé de faire ainsi, mais j'ai des résultats concluant seulement en supprimant la ligne d'index
Si tu retires juste le mot-clé UNIQUE
, ce n'est pas suffisant :thinking: ?
En retirant le mot-clé ça marche sans soucis, ça marche nickel là dessus et je t'en remercie. Mais au niveau de ma colonne numéroté, ça me numérote chaque ligne avec l'option "AUTO_INCREMENT", mais l'idée serait d'avoir une colonne de variable qui elle l'est.
mais l'idée serait d'avoir une colonne de variable qui elle l'est.
Je n'ai pas compris ce que tu voulais dire.
La actuellement, la colonne number
est auto-incrémentée de ce que je lis.
Pourquoi vouloir auto-incrémenter number
au lieu de id
d'ailleurs ?
L'idée initiale c'était de pouvoir indexer mes idées pour pouvoir ainsi les supprimer en fonction de leur numéro. Dans une application MySQL c'est parfait mais pas pour une gestion sur Discord.
Donc j'ai tout reformaté histoire de faire clean et là j'en suis arrivé à me dire que pour un truc que je restreint rien qu'à moi même en début de commande, je n'ai pas le besoin d'attribuer mon ID sachant que je ne maitrise pas assez SQL.
Donc ce que j'ai fait c'est que j'ai restreint à uniquement 2 colonnes : id
et todo
qui numérote tout ça mais en fonction de Math.random()
donc c'est à refaire.
Et puis je me demande aussi comment avec du langage SQL je peux lister chaque ligne d'un tableau ?
Chaque ligne? Simplement SELECT * FROM myTable
sans condition WHERE ...
En soit ce que je recherchais c'était surtout comment renvoyer tout ça sur Discord, mais en soit j'étais déjà mal parti donc merci beaucoup.
Juste, comment je pourrais faire pour nommer mes ID's dans un ordre défini ? Sans que ça reprenne un numéro déjà pris
Tu peux chercher comment utiliser les "AUTO INCREMENT" en fonction de ta base de donnée, la syntaxe est différente selon le serveur que tu utilises il me semble
En soit j'utilise pas vraiment de serveur avec better-sqlite3, enfin j'en ai vraiment aucune idée, en soit j'ai essayé de faire un système, mais je crois que c'est perdu d'avance, il n'y a aucune erreur quand je fais ma commande +todo add . . .
, c'est juste du blanc, rien dans la console :
const biggestID = dev.prepare("SELECT * FROM tool ORDER BY id DESC LIMIT 1").all();
for (const loop of biggestID) {
const param = args.slice(1)
addtodo.run({
id : (loop.id + Number(1)) == false ? Number(1) : loop.id + Number(1),
todo : param.join(' '),
})
return message.channel.send('The task was added correctly. :thumbsup:')
}
Mais je reste bien conscient que mes conditions sont vraiment pas opti, je m'y mettrai un autre jour je pense
Finalement avec un peu d'apprentissage et de motivation, j'ai réussi à refaire quelque chose avec un todo qui se crée automatiquement avec la table avec un ID entier. Comme ça j'ai juste à incrémenter celui-ci à chaque fois, même si dans ce contexte cela marche moins bien : ID 1, ID2, ID 3, ID4 -> DELETE de ID 2 -> ID 1, ID3, ID4 -> Ajout d'un nouveau TODO -> ID 1, ID 3, ID4, ID 5
Hey @dannyhpy, avec un début de maitrise des Bases de Données, je me suis dit que je pouvais créer une sorte de Todo list sous forme de tableau. Mais mes compétences ne sont pas forcément à la hauteur et je me retrouve avec quelques chose d'à moitié fonctionnel. Lorsque j'ajoute une première chose, tout marche correctement comme souhaité, mais l'erreur s'effectue au bout de la 2e, le programme crashant lorsqu'il reconnait mon ID.
Voici l'erreur :
J'ai aussi essayé d'ajouter un système qui compte le numéro de la tâche, mais sans succès, voici ce qui apparait dans mon tableau :
[object Object]1
Localisation du fichier : commands/DevTools/todo.js
Je me doute que ça peut être assez compliqué comme problème et que ma simple organisation de mon tableau peut en être à l'origine. C'est pourquoi je te remerci d'avance pour tout tes efforts visant à m'aider, Merci !