@AlexanderPoor2022

Чат бот, извлечение данных из БД?

Мой первый бот, помогите разобраться. Не могу сделать что бы после указания пользователя Фамилии, можно было извлечь из БД нужную информацию.

MY_BD = sqlite3.connect('db.db', check_same_thread = False)
cursor = MY_BD.cursor()


@bot.message_handler(commands=['start', 'go'])
def send_welcome(message):
    bot.reply_to(message, "Чем тебе помочь мой друг?")


@bot.message_handler(func=lambda m: True)
def get_text_messages(message):
    text = message.text.lower()
    if text == "привет":
        bot.reply_to(message, 'Привет, я бот')
    elif text == "/smena":
        bot.reply_to(message.from_user.id, 'Напиши свою фамилию :')
        bot.register_next_step_handler(message, get_date)
    else:
        bot.reply_to(message, "Я тебя не понимаю. Напиши /smena.")


bot.polling(none_stop=True, interval=0)


def get_date(message):
    text = message.text.lower()
    user_surname = MY_BD.execute(f'SELECT smena_numbe from MY_BD WHERE user_sernam={text}').fetchone()
    print(user_surname)
    if user_surname is None:
        return False
    else:
        return user_surname
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 4
nki
@nki
bezkart.ru готовая система лояльности
Могу предположить только опечатки в запросе
'SELECT smena_numbe from MY_BD WHERE user_sernam={text}'

smena_numbe должно быть smena_numbeR
user_sernam должно быть user_surname
Ответ написан
@AlexanderPoor2022 Автор вопроса
Мне показалось что написал довольно доступно. После указания фамилии, идёт запрос на вытаскивания данных "smena_numb" в переменную user_surname , эту переменную и должен вернуть бот при указании пользователя Фамилии.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Начните с ознакомления с документацией
https://docs.python.org/3/library/sqlite3.html

Для форматирования не стоит использовать f-строки (как и другие вариант %, format, etc)
Запросы в бд отправляются с помощью курсора
Ответ написан
Комментировать
150_Kirill_150
@150_Kirill_150
FX, Python, C# (Unity), Coding, адепт Linux
Откройте через какую нибудь программку для посмотри бд вашу базу данных
И найдите нужные поля, и составьте по ним запрос
Скорее всего у вас где-то опечатка
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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