Номерация алфавита и перевод фразы в код. Сравнение с другими сообщениями в таблице
Код
client.on("message", request => { var NULL = "YOURBRAINS"; const REQUIRED_PREFIX='?'; const message=request.content.toString().trim(); if(message.substr(0,1)!==REQUIRED_PREFIX) return false request.reply('Bad request'); sql.run('INSERT INTO вопросы (вопрос) VALUES (?)',[message]); });Нужно чтобы сообщение переделывалось в код 00,00,00 подобно этому. А сами цифры будут обозначать буквы в алфавите var а = 01. Так переходили сообщения и сравнивались с другими в таблице до всех совпадений. |
SorryHanzoMain, если нужно проверить уникальность сообщения, то можно перед вставкой данных осуществить поиск этого вставляемого вопроса в таблице https://www.w3schools.com/sql/sql_where.asp.
Еще можно добавить полю "вопрос" уникальный ключ и модифицировать сам insert-запрос https://dev.mysql.com/doc/refman/5.5/en/insert.html |
Nexus
Да, всё почти получилось. Правда есть одно но. Как обозначить выполнение действие и не выполненное? sql.get(`SELECT * FROM вопросы WHERE вопрос ='${message}'`).then(() => { if (2) { sql.run('INSERT INTO вопросы (вопрос) VALUES (?)', [message]).then(() => { request.reply("Извини, я этого пока не знаю, но это не надолго") }) if() { sql.get(`SELECT * FROM вопросы WHERE trueorfalse ='${да}'`).then(да => { if (да) { request.reply("Да") } else { sql.get(`SELECT * FROM вопросы WHERE trueorfalse ='${нет}'`).then(нет => { if (нет) { request.reply("Нет") }; }) } } ) } } }) }) Конкретно здесь if (2) { sql.run('INSERT INTO вопросы (вопрос) VALUES (?)', [message])Выполнено ли действие sql.get(`SELECT * FROM вопросы WHERE вопрос ='${message}'`) И if() { sql.get(`SELECT * FROM вопросы WHERE trueorfalse ='${да}'`)Действие не выполнено. |
SorryHanzoMain, не понимаю.
Что у вас происходит с кодом? Часть запросов создается с использованием т.н. placeholder'ов, часть без. Если driver бд умеет работать с плейсхолдерами, то используйте их. Что у вас происходит с полями таблиц базы данных? Почему часть полей имеет название содержащее кириллицу, часть латиницу? Лучше именовать поля латиницей, если очень хочется кириллицу, то пусть так, но не стоит их смешивать. Что с условиями в строках 2 и 6? Условие в строке 2 всегда будет выполнено, в строке 6 синтаксическая ошибка. Переменные кириллицей... stackoverflow.com Если в таблице нужно хранить значение "да" или "нет", то стоит создать поле с типом "tinyint". https://dev.mysql.com/doc/refman/8.0...ger-types.html Значением для поля должно быть строго 0 или 1, где 1 это "да", а 0 - "нет". Что вы пытаетесь сделать начиная с шестой строки для меня загадка. |
Цитата:
В 6 строке должно быть это действие будет выполнено если совпадение найдено. После шестой строки идёт поиск сообщений да(после заменю на 1 и 0) и нет. Если да, то в чат да, если нет, то и в чат нет. |
SorryHanzoMain,
sql.get('SELECT * FROM questions WHERE question LIKE ?',[message]).then(res=>{ console.log(sql.constructor.name,...arguments); }); Что в консоли отобразится? |
Цитата:
try { exports.requireDepth += 1; return mod.require(path); } finally { exports.requireDepth -= 1; } } Module { id: '.', exports: {}, parent: null, filename: 'C:\\Games\\Bot\\index.js', loaded: true, children: [ Module { id: 'C:\\Games\\Bot\\node_modules\\discord.js\\src\\in dex.js', exports: [Object], parent: [Circular], filename: 'C:\\Games\\Bot\\node_modules\\discord.js\\src\\in dex.js', loaded: true, children: [Array], paths: [Array] }, Module { id: 'C:\\Games\\Bot\\config.json', exports: [Object], parent: [Circular], filename: 'C:\\Games\\Bot\\config.json', loaded: true, children: [], paths: [Array] }, Module { id: 'C:\\Games\\Bot\\config_quest.json', exports: [Object], parent: [Circular], filename: 'C:\\Games\\Bot\\config_quest.json', loaded: true, children: [], paths: [Array] }, Module { id: 'C:\\Games\\Bot\\node_modules\\sqlite\\main.js', exports: [Object], parent: [Circular], filename: 'C:\\Games\\Bot\\node_modules\\sqlite\\main.js', loaded: true, children: [Array], paths: [Array] }, Module { id: 'C:\\Games\\Bot\\node_modules\\overwatch-js\\index.js', exports: [Object], parent: [Circular], filename: 'C:\\Games\\Bot\\node_modules\\overwatch-js\\index.js', loaded: true, children: [Array], paths: [Array] }, Module { id: 'C:\\Games\\Bot\\node_modules\\discord-anti-spam\\anti_spam.js', exports: [Function], parent: [Circular], filename: 'C:\\Games\\Bot\\node_modules\\discord-anti-spam\\anti_spam.js', loaded: true, children: [], paths: [Array] } ], paths: [ 'C:\\Games\\Bot\\node_modules', 'C:\\Games\\node_modules', 'C:\\node_modules' ] } C:\Games\Bot\index.js C:\Games\Bot |
SorryHanzoMain, бесполезная информация)
Какой драйвер бд используете? |
Что значит драйвер? Я использую таблицу SQLite
|
SorryHanzoMain, как переменную "sql" получили?
|
Часовой пояс GMT +3, время: 20:40. |