@UserTypical3

Как последовательно получить данные из бд?

Всем привет!
Перед мной стоит такая задача.
У меня есть бд в которой 3 столбца Student, Balance, WeekSalary
В бд допустим 10 пользователей.

Мне нужно функцией получить по одному каждого студента (Student) потом его баланс (Balance) потом его зарплату за неделю (WeekSalary) и внести изменения его баланса в бд Balance + WeekSalary
Набросал код, но ничего не работает. Помогите, пожалуйста.

db = sqlite3.connect('base.db') # подключаю бд
cur = db.cursor()
def add(db, cur):
    cur.execute('SELECT Name FROM users')
    for Name in cur:
        cur.execute('SELECT Balance FROM users WHERE name = "{}"'.format(Name)) # получаю баланс по имени
        Balance = Name[0] # сохраняю баланс для того чтобы потом прибавить к нему недельную выручку(зарплату)
        for Balance in cur:
            cur.execute('SELECT WeekSalary FROM users WHERE name = "{}"'.format(Name)) # получаю недельную зарплату
            WeekSalary = Balance[0] # сохраняю недельную выручку
            summa = Balance + WeekSalary # складываю 
            cur.execute('UPDATE users SET Balance = {} WHERE Name = {}'.format(summa, Name)) # изменяю баланс
    db.commit()
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
jerwright
@jerwright
while True: coding()
Если я понял всё правильно, должно помочь:
db = sqlite3.connect('base.db') # подключаю бд
cur = db.cursor()


def add():
    for row in cur.execute('SELECT * FROM users'):
        Name = row['Name']
        Balance = row['Balance']
        WeekSalary = row['WeekSalary']
        summa = Balance+WeekSalary
        cur.execute("UPDATE users SET Balance = {} WHERE Name = {}".format(summa, Name))
        db.commit()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы