Как распределить название кортежей для Inline кнопок?
Имеется такой код для динамичных Inline кнопок из базы данных
def FindPlayer(user_id):
Find_Players = BotDB.get_find_users(user_id)
kb = InlineKeyboardBuilder()
for find_user in Find_Players:
kb.button(text=f'{Find_Players[0][0]}', callback_data=f'findPlayer|{Find_Players[0][0]}')
kb.adjust(1)
return kb.as_markup()
Все хорошо. Кнопки создаются по количеству их в базе данных, но названия с первой строчки
Код для нахождения всех строк с find_user по user_id
def get_find_users(self, user_id):
result = self.cursor.execute("SELECT `find_user` FROM `players` WHERE `user_id` = ?", (user_id,))
return result.fetchall()
Нужно чтобы не повторялись name1, а были согласно их названию.
Думаю такая ошибка из за [0][0], но я не знаю как иначе по умному выводить.
Ответы (1 шт):
Автор решения: AnnaBazueva
→ Ссылка
Я не понимаю, почему Вы в цикле не используете find_user
...
for find_user in Find_Players:
# Используем find_user вместо Find_Players[0]
kb.button(text=f'{find_user[0]}', callback_data=f'findPlayer|{find_user[0]}')
Ещё можно использовать enumerate
, но это странно:
for i, _ in enumerate(Find_Players):
kb.button(text=f'{Find_Players[i][0]}', callback_data=f'findPlayer|{Find_Players[i][0]}')