Задать вопрос
@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 Средний Комментировать
Решения вопроса 1
Зачем при чтении использовать conn.commit(), это строка сохраняет данные в базе после выполнения запроса на добавление/изменение ?, чтобы получить используй fetchall(), да и при записи попробуй INSERT OR UPDATE использовать, смотря как таблица задумывалась
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 00:55
2500 руб./за проект
02 февр. 2025, в 00:25
5000 руб./за проект
02 февр. 2025, в 00:18
1000 руб./за проект