SQLite comparison discord.py
Как сделать проверку на то что есть ли у человека нужное кол-во монет или баллов?
class button(discord.ui.View):
def __init__(self) -> None:
super().__init__(timeout=None)
self.value = None
@discord.ui.button(emoji=None,label="1",style=discord.ButtonStyle.grey)
async def us(self, interaction: discord.Interaction, button: discord.ui.Button):
cursor.execute("UPDATE admin SET admin_balls = admin_balls - 800 WHERE id = '{}'".format(interaction.user.id))
connection.commit()
await interaction.response.send_message(embed = discord.Embed(title="Успешно!",description="Вы успешно купили `Снятие устного предупреждения`, ожидайте выдачи товара",colour=0xFD0DFB),ephemeral=True)
await bot.get_channel(1044681310700044368).send(embed= discord.Embed(description=f"Администратор {interaction.user.mention} купил `снятие устного предупреждения`",colour=0xFD0DFB))
Ответы (2 шт):
Автор решения: FlamyIce
→ Ссылка
Сделай цикл for по выводу данных из бд, после чего в этом цикле делай нужную тебе проверку. Так же можно просто создать список до цикла и в цикле просто заполнить список и уже после этого сделать проверку.
Пример кода первого варианта:
for i in cursor.execute(f'SELECT * FROM твобя бд WHERE id = {interaction.user.id}'):
if i[индекс поля с монетами] >= кол-во монет:
await interaction.response.send_message(embed = discord.Embed(title="Успешно!",description="Вы успешно купили `Снятие устного предупреждения`, ожидайте выдачи товара",colour=0xFD0DFB),ephemeral=True)
Автор решения: q r t s
→ Ссылка
Проверку сделать очень просто:
for row in cursor.execute(f"SELECT admin_balls FROM название WHERE id = {interaction.user.id}"):
if row[0] >= 1000:
Далее отнимаем баланс:
cursor.execute(f"UPDATE название SET admin_balls = admin_balls-1000 WHERE id={interaction.user.id}")