@lavagod

Почему скидывается итерация?

Вот смотрите...

Получаю данные
name = add_e11.get()
start = add_e12.get()
finish = add_e13.get()
grp_name = add_e14.get()

Выдергиваю из базы данных 3 записи
sql = 'SELECT ID_USER FROM grp WHERE NAME_GRP=?'
data = cur.execute(sql,( grp_name, )) # Список альпинистов в группе
conn.commit()

Их там три штуки...

Итерируюсь по ним, получаю на экране 1,2,3 (индексы альпинистов)
for i in data:
        id_user = i[0]
        print(id_user)     # Вывод 1,2,3

Но как только хочу с этими индексами записать в таблицу три новые записи
for i in data:
        id_user = i[0]
        sql = 'INSERT INTO sunrise(NAME_MNT,DATA_START,DATA_FINISH,ID_USER,NAME_GRP) VALUES(?,?,?,?,?)'
        cur.execute(sql,( name,start,finish,id_user,grp_name ))
        conn.commit()



пишет только первую (с id_user=1) и продолжает дальше работу по тексту. Почему не происходит итерации по 2 и 3 индексу? Почему в таблицу записывается только одна запись с 1-ым индексом?
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
Зачем при чтении использовать conn.commit(), это строка сохраняет данные в базе после выполнения запроса на добавление/изменение ?, чтобы получить используй fetchall(), да и при записи попробуй INSERT OR UPDATE использовать, смотря как таблица задумывалась
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект