@azizback

Как вывести все строки из таблицы, которые принадлежат userId?

Мне нужно отобразить все заказы, принадлежащие пользователю, в один клик. Каков наилучший способ сделать это? Приведенный ниже код выводит только первый элемент.
async def list_orders(message):
    cur.execute("SELECT * FROM orders WHERE userId=?", (message.from_user.id,))
    user = cur.fetchone()
    if user:
           await message.answer(text=f'Order #{user[2]}\n'
                                      'Open!\n\n'
                                      f'{user[3]}')
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Очевидно, делать выборку не одного элемента.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
febday
@febday
async def list_orders(message):
    cur.execute("SELECT * FROM orders WHERE userId=?", (message.from_user.id,))
    users = cur.fetchall()
    if users != list():
        return await message.answer("Ничего нет")

    text =  '\n'.join([f'Order #{user[2}\nOpen!\n\n{user[3]}' for user in users])
    return await message.answer(text=text)


Можно так попробовать. По факту это тоже самое, что вам сказал ответчик выше
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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