@StepanKoliada

Как сделать действие с переменной в sql?

Делаю прогу, мне нужно что бы она отнимала cash от нужного мне числа(input). Много всего перепробовал, ничего не помогло. Скажите как это сделать... Вот прога:
import sqlite3

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

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



def casino():
	number = input("Сколько грамм:")
	if number == '40':
		print('Ваш баланс повышен на 40')
		sql.execute('UPDATE users SET cash = cash + 40')
		db.commit()
	elif number == '100':
		print("Ваш баланс повышен на 100")
		sql.execute('UPDATE users SET cash = cash + 100')
		db.commit()
	elif number == 'del':
		den = input("Сколько снять:")
		de = '1'
		kk = '2'
		sql.execute('INSERT INTO users VALUES (?,?,?)', (den, de, kk))
		sql.execute('UPDATE users SET cash = cash - de')
		print("Баланс снят на " + de)	
		db.commit()

def enter():
	for i in sql.execute('SELECT cash FROM users'):
		print(i)
	for u in sql.execute('SELECT ware FROM users'):
		print(u)

def main():
	casino()
	enter()
main()

Выводит:

d:\python>pdf.py
Сколько грамм:del
Сколько снять:1
Traceback (most recent call last):
File "D:\python\pdf.py", line 45, in
main()
File "D:\python\pdf.py", line 43, in main
casino()
File "D:\python\pdf.py", line 32, in casino
sql.execute('UPDATE users SET cash = cash - de')
sqlite3.OperationalError: no such column: de
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
idShura
@idShura
Почитайте про конкатенацию строк в python
sql.execute('UPDATE users SET cash = cash - ' + de)

У вас ни в одном sql запросе нет условия (Where), вы точно понимаете что пишите?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект