@Yuraovdnk

Вывод данных из БД в телеграм-бот?

Всем привет. Нужна помощь. Вот написал простого бота который просит ввести данные. Теперь нужно сравнить эти данные введенные пользователем с данными в БД sqlite (вывести если есть). Я так понимаю эти данные нужно поместить в переменную и в запросе "Select" сравнить переменную полями БД. Но у меня не получается( не хватает знаний) Извините, если тупой вопрос, я новичек. Подскажите пожайлуста. Спасибо

def city_start(message):
    try:
        markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        itembtn1 = types.KeyboardButton('Киев')
        itembtn2 = types.KeyboardButton('Одесса')
        itembtn3 = types.KeyboardButton('Харьков')
        itembtn4 = types.KeyboardButton('Днепр')
        itembtn5 = types.KeyboardButton('Запорожье')
        itembtn6 = types.KeyboardButton('Львов')
        markup.add(itembtn1, itembtn2, itembtn3, itembtn4, itembtn5, itembtn6)
        msg = bot.send_message(chat_id, "Откуда отправляетесь?", reply_markup=markup)
        bot.register_next_step_handler(msg, city_finish)
    except Exception as e:
        bot.reply_to(message, 'oooops')

def city_finish(message):
    try:
        markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        itembtn1 = types.KeyboardButton('Киев')
        itembtn2 = types.KeyboardButton('Одесса')
        itembtn3 = types.KeyboardButton('Харьков')
        itembtn4 = types.KeyboardButton('Днепр')
        itembtn5 = types.KeyboardButton('Запорожье')
        itembtn6 = types.KeyboardButton('Львов')
        markup.add(itembtn1, itembtn2, itembtn3, itembtn4, itembtn5, itembtn6)
        msg = bot.send_message(user_id, "Куда Направляетесь?", reply_markup=markup)
        bot.register_next_step_handler(msg, count_passanger)
    except Exception as e:
        bot.reply_to(message, 'oooops')
  • Вопрос задан
  • 3147 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
а что сложного подставить переменную в запрос?
получаете город или что там
city = message.text
    with db.connect('your.db') as connection:
        cursor = connection.cursor()
        cursor.execute("SELECT * FROM table WHERE row = ?", (city,))
        result = cursor.fetchall()

если немного доработать то может что-то вроде того:
def check_city(city ):
    with db.connect('your.db') as connection:
        cursor = connection.cursor()
        cursor.execute("SELECT * FROM table WHERE row = ? ", (city,))
        data = cursor.fetchone()
        if data is None:
            return False
        else:
            return data

test = check_city(message.text)
if test:
    bot.send_message(user_id, test[0])  # например первое поле из таблицы
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы