@StepanKoliada

Почему не выводится значение из sqlite3?

не выводится "Ваш баланс"(def enter()):
import sqlite3


global db
global sql
db = sqlite3.connect('pdftea.db')
sql = db.cursor()

sql.execute("""CREATE TABLE IF NOT EXISTS users (
  login TEXT,
  cash INT
)""")
db.commit()

def tea():
  global ulogin
  ulogin = "Sergey"
  number = input("Сколько грамм: ")	
  if number == '40':
    sql.execute('UPDATE users SET cash = cash + 40 WHERE login = ?',(ulogin, ))
    print('Ваш баланс повышен на 40')
    db.commit()

  if number == '100':
    print('Ваш баланс повышен на 100')
    sql.execute('UPDATE users SET cash = cash + 100 WHERE login = ?',(ulogin, ))
    db.commit()
        
def enter():
  for i in sql.execute('SELECT cash FROM users'):
    print("Ваш баланс" + i)
    db.commit()
def main():
  enter()
  tea()
main()


должен выводиться баланс, но выводится пустая строка:
d:\python>pdf.py
Сколько грамм: 100
Ваш баланс повышен на 100

d:\python>
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Руслан . абсолютно прав. А ещё по-умолчанию отсутствует login “Sergey”, поэтому, если он ранее не был добавлен в базу, .fetchall() вернет пустой список и всё равно ничего не напечатается.
Ответ написан
LaRN
@LaRN
Senior Developer
Вначале нужно исполнить запрос
sql.execute('SELECT cash FROM users')з
А затем получить датасет
for i in sql.fetchAll()
Ну после получения данных не нужно делать
db.commit()
Вы же ничего не меняли и нечего фиксировать.
Ответ написан
Ваш ответ на вопрос

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

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