09.08.2018, 06:48
|
|
Аспирант
|
|
Регистрация: 01.08.2018
Сообщений: 34
|
|
Номерация алфавита и перевод фразы в код. Сравнение с другими сообщениями в таблице
Код
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. Так переходили сообщения и сравнивались с другими в таблице до всех совпадений.
|
|
09.08.2018, 13:12
|
|
Аспирант
|
|
Регистрация: 01.08.2018
Сообщений: 34
|
|
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 ='${да}'`)
Действие не выполнено.
|
|
09.08.2018, 13:55
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,790
|
|
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 - "нет".
Что вы пытаетесь сделать начиная с шестой строки для меня загадка.
|
|
09.08.2018, 14:33
|
|
Аспирант
|
|
Регистрация: 01.08.2018
Сообщений: 34
|
|
Сообщение от Nexus
|
SorryHanzoMain, не понимаю.
Что с условиями в строках 2 и 6?
|
Во второй строке должно быть выражение, что это действие будет выполнено если совпадения не найдены.
В 6 строке должно быть это действие будет выполнено если совпадение найдено. После шестой строки идёт поиск сообщений да(после заменю на 1 и 0) и нет. Если да, то в чат да, если нет, то и в чат нет.
|
|
09.08.2018, 14:56
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,790
|
|
SorryHanzoMain,
sql.get('SELECT * FROM questions WHERE question LIKE ?',[message]).then(res=>{
console.log(sql.constructor.name,...arguments);
});
Что в консоли отобразится?
|
|
09.08.2018, 15:15
|
|
Аспирант
|
|
Регистрация: 01.08.2018
Сообщений: 34
|
|
Сообщение от Nexus
|
SorryHanzoMain,
sql.get('SELECT * FROM questions WHERE question LIKE ?',[message]).then(res=>{
console.log(sql.constructor.name,...arguments);
});
Что в консоли отобразится?
|
Database {} function require(path) {
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
|
|
09.08.2018, 15:30
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,790
|
|
SorryHanzoMain, бесполезная информация)
Какой драйвер бд используете?
|
|
09.08.2018, 15:32
|
|
Аспирант
|
|
Регистрация: 01.08.2018
Сообщений: 34
|
|
Что значит драйвер? Я использую таблицу SQLite
|
|
09.08.2018, 15:39
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,790
|
|
SorryHanzoMain, как переменную "sql" получили?
|
|
|
|