Почему команда delete в тг боте с базой данных sql не работает

Рейтинг: 0Ответов: 1Опубликовано: 09.07.2023
@bot.message_handler(commands=['delete'])
def delete_task(message):
    con = sq.connect('organizerbot.sql')
    cur = con.cursor()
    cur.execute("""SELECT task FROM tasks""")
    task_list = cur.fetchall()
    values = message.text.split()
    con.commit()
    cur.close()
    con.close()
    bot.send_message(message.chat.id, f"Введите задачу которую хотите удалить.(Список ваших задачей: {task_list})")
    if values in task_list:
        con = sq.connect('organizerbot.sql')
        cur = con.cursor()
        cur.execute("""SELECT task FROM tasks""")
        task_list = cur.fetchall()
        values = message.text.split()
        con.commit()
        cur.close()
        con.close()
        con = sq.connect('organizerbot.sql')
        cur = con.cursor()
        cur.execute("DELETE FROM tasks WHERE task=?", (values,))
        con.commit()
        cur.close()
        con.close()
        bot.send_message(message.chat.id, f"Задача успешно удалена. (Список ваших задач: {task_list})")
    else:
        bot.send_message(message.chat.id, "Указанная задача не найдена")

Ответы

▲ 0

Можно через executemany():

@bot.message_handler(commands=['delete'])
def delete_task(message):
    con = sq.connect('organizerbot.sql')
    cur = con.cursor()
    cur.execute("SELECT task FROM tasks")
    task_list = cur.fetchall()
    values = message.text.split()
    con.commit()
    cur.close()
    con.close()
    bot.send_message(message.chat.id, f"Введите задачу которую хотите удалить.(Список ваших задачей: {task_list})")
    if values in task_list:
        con = sq.connect('organizerbot.sql')
        cur = con.cursor()
        cur.execute("SELECT task FROM tasks")
        task_list = cur.fetchall()
        values = message.text.split()
        con.commit()
        cur.close()
        con.close()
        con = sq.connect('organizerbot.sql')
        cur = con.cursor()
        cur.executemany("DELETE FROM tasks WHERE task = ?", map(lambda v: (v,), values))
        con.commit()
        cur.close()
        con.close()
        bot.send_message(message.chat.id, f"Задача успешно удалена. (Список ваших задач: {task_list})")
    else:
        bot.send_message(message.chat.id, "Указанная задача не найдена")