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

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽