Как остановить цикл?

Допустим, у меня есть код:


    @bot.command()
async def search2(inter):
    time.sleep(1)
    db = sqlite3.connect('users.db')
    cursor = db.cursor()
    cursor.execute("SELECT status FROM search WHERE id = ?", [inter.author.id])
    stat = cursor.fetchone()
    stat = stat[0]
    if stat == 'no':
        cursor.execute("UPDATE search SET status = ? WHERE id = ?", ['yes', inter.author.id])
        data = datetime.now().timestamp()
        embed = disnake.Embed(
            title='Запущен поиск соперника...',

            )
        mesas = await inter.send(f"<t:{data}:R>", embed=embed)
        cursor.execute("UPDATE search SET mesas = ? WHERE id = ?", [mesas.id, inter.author.id])
        db.commit()
        cursor.execute("SELECT id FROM search WHERE status = ?", ['yes'])
        ids = cursor.fetchall()

        search_yes = 'No'
        while search_yes == 'No':
            await asyncio.sleep(1)
            for z in range(len(ids)):
                if ids[z][0] == inter.author.id:
                    print("aut")
                else:
                    print("noaut")
                    search_yes = "Yes"
                    await inter.send(f"Найден соперник: <@{ids[z][0]}>")
                    cursor.execute("UPDATE search SET status = ? WHERE id = ?", ['ingame', inter.author.id])
                    cursor.execute("UPDATE search SET status = ? WHERE id = ?", ['ingame', ids[z][0]])
                    await inter.send(f"Битва между: <@{inter.author.id}> <:CombatVersusPNGDownloadImage:1216644219238748250> <@{ids[z][0]}>")
                    embed = disnake.Embed(
                        title='Поиск закончен',
                        description=f'Ваш соперник: <@{ids[z][0]}>'
                        )
                    cursor.execute("SELECT mesas FROM search WHERE id = ?", [inter.author.id])
                    mesas = cursor.fetchone()
                    mesas = mesas[0]
                    msg = await inter.fetch_message(mesas)
                    await msg.edit(embed=embed)
                    cursor.execute("SELECT mesas FROM search WHERE id = ?", [ids[z][0]])
                    mesas = cursor.fetchone()
                    mesas = mesas[0]
                    msg = await inter.fetch_message(mesas)
                    await msg.edit(embed=embed)
                    cursor.execute("INSERT INTO games (players1, players2) VALUES (?,?)", [inter.author.id, ids[z][0]])
                    last = cursor.lastrowid
                    db.commit()
                    member = await MemberConverter().convert(inter, str(ids[z][0]))
                    name = f'Game #{last}'
                    text_channel = await inter.guild.create_text_channel(
                        name=name,
                        overwrites = {inter.guild.default_role: disnake.PermissionOverwrite(view_channel=False), inter.author: disnake.PermissionOverwrite(read_messages = True, send_messages=True, view_channel=True), member: disnake.PermissionOverwrite(read_messages = True, send_messages=True, view_channel=True)}
                        )
                    cursor.execute("UPDATE search SET channel = ? WHERE id = ?", [text_channel.id, inter.author.id])
                    db.commit()
            if search_yes == 'Yes':
                break
    else:

Как остановить цикл While? Останавливается только for, но смысла 0, т.к while его заново вызывает.


Ответы (0 шт):