Задать вопрос
@qwwwwwty

Почему не работает SQL (Python) запрос, в чем причина и как исправить?

у меня есть код с запросами в бд, который, примечательно со мной работает почти корректно (когда я произвожу команду). баланс в таблице user_info не меняется, но кол-во объекта в таблице economy изменяется корректно, но когда аналогичную команду делает другой юзер - ботом она игнорируется. консоль ошибок не выдает.
п.с скорее всего мой код костыль и его можно как сделать короче и компактнее, но лучше заняться решением проблемы, а уже потом оптимизации. мне так легче. код:

@dp.message_handler(commands=["marketbuy"],commands_prefix="!/")
async def cmd_marketbuy(message: types.Message):

	title = f'<a href="tg://user?id={message.from_user.id}">{message.from_user.full_name}</a>'

	connect = sqlite3.connect('INFO.db')
	cursor = connect.cursor()

	check_snus = message.text.split(" ")[1]
	check_id = int(message.text.split(" ")[2])
	check_amount_snus = int(message.text.split(" ")[3])

	print(check_id)


	if check_snus == "iceberg":

		for economy_check_amount_iceberg in cursor.execute("SELECT amount_iceberg FROM economy WHERE user_id = ?",(check_id, )):
			economy_last_check_amount_iceberg = economy_check_amount_iceberg[0]

			if check_amount_snus > economy_last_check_amount_iceberg:
				for i in cursor.execute("SELECT user_name FROM user_info WHERE user_id = ?",(check_id, )):
					name_karma = (list(i)[0])

				for i2 in cursor.execute("SELECT user_id FROM user_info WHERE user_id = ?",(check_id, )):
					name_karma2 = (list(i2)[0])

				await bot.send_message(message.chat.id, text = "У @{}".format((i)[0]) + " С ID {}".format((i2)[0]) + " недостаточно шпаков")

			else:
				for check_price in cursor.execute("SELECT iceberg_price FROM economy WHERE user_id = ?",(message.from_user.id, )):
					name_karma3 = (list(check_price)[0])

					result = check_amount_snus * check_price

					lastresult = sum(result)

					cursor.execute("UPDATE inventory_snus SET ICEBERG = ICEBERG + ? WHERE user_id = ?", (check_amount_snus, message.from_user.id, ))
					cursor.execute("UPDATE user_info SET balance = balance - ? WHERE user_id = ?", (lastresult, message.from_user.id, ))
					connect.commit()
					
					cursor.execute("UPDATE user_info SET balance = balance + ? WHERE user_id = ?", (lastresult, check_id, ))
					cursor.execute("UPDATE economy SET amount_iceberg = amount_iceberg - ? WHERE user_id = ?", (check_amount_snus, check_id, ))
					connect.commit()
					
					await bot.send_message(message.chat.id, text = f"{title}, совершил удачную сделку\nТы купил " + str(check_amount_snus) + " шпаков Iceberg за " + str(lastresult) + " рублей, по цене " + str(check_price[0]) + " рублей за шпак")
					await bot.send_message(check_id, text = f"{title}, совершил удачную сделку\nОн купил у тебя " + str(check_amount_snus) + " шпаков Iceberg за " + str(lastresult) + " рублей, по цене " + str(check_price[0]) + " рублей за шпак")	

						
			
	elif check_snus == "arqa":
		pass

	elif check_snus == "kasta":
		pass
		
	elif check_snus == "corvus":
		pass
	
	else:
		pass	

	connect.commit()
  • Вопрос задан
  • 247 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы