Вот пример строки из БД:
ID - "155" street - "Гагарина" house - "36/3" komm - "Фасадный дом" street_str - "гагарина"
При вводе адреса мне нужно вытащить ID записи и во втором шаге составить запрос к SQLite. Но мне вместо ID возвращается изначально введенный адрес
Запрос: "Гагарина 36/3" =>
Step_2: "Введите комментарий"
Записать комментарий в переменную temp
Комментарий: "Комментарий"
Запрос к БД: "По ID записи объединить старый комментарий и новый"
Но пока на step_2 программа не переходи и не выводит ошибки.
@bot.message_handler(commands=['add'])
def handle_text (message):
bot.send_message(message.chat.id, f"{message.from_user.first_name}, введите адрес")
@bot.message_handler(content_types=['text'])
def handle_text(message):
db = sqlite3.connect('db.sqlite')
cursor = db.cursor()
txt = message.text
zap = txt.rsplit(' ', 1)
street = zap[0]
house = zap[1]
street_str = zap[0].lower()
cursor.execute("SELECT * FROM tkd WHERE street_str LIKE '%' || ? || '%' AND house = ?", (street_str, house))
res = cursor.fetchone()
if res:
res[0]
res[3]
else:
bot.send_message(message.chat.id, 'Проверьте адрес')
bot.register_next_step_handler(message, step_2)
def step_2(message):
id = res[0]
temp_komm = res[3]
bot.send_message(message.chat.id, 'Введите комментарий')
new_komm = message.txt
db = sqlite3.connect('db.sqlite')
cursor = db.cursor()
cursor.execute(f"UPDATE tkd SET komm = {temp_komm}\n{new_komm} WHERE id == {id}")
cursor.close()
db.commit()