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

Как сделать вывод при нажатии на inline-кнопку вывод из бд?

Концепция магазина телеграмм, есть 2 таблицы: products и groups (ниже будет DDL таблиц). Я сделал вывод групп товаров из таблицы, но не могу сделать так, чтобы при нажатии на inline-кнопку с группой выводились товары.

DDL таблицы products:

CREATE TABLE product (
    id           INTEGER PRIMARY KEY,
    name         TEXT,
    description  TEXT,
    group_number INTEGER REFERENCES groups (id) 
);

DDL таблицы groups:

CREATE TABLE groups (
    id   INTEGER PRIMARY KEY,
    name TEXT
);

Код, где используется таблица products:
1. SQL запрос:

def get_products(self, category_id):
        with self.connection:
            result = self.cursor.execute('SELECT * FROM `product` WHERE `group_number` = ?', (category_id,)).fetchall()
            return result

2. Использование запроса:

@router.callback_query(F.data.startswith('category_'))
async def category_(callback : CallbackQuery):
    products_kb = InlineKeyboardBuilder()
    category_id = callback.data.split('_')[1]
    products = db.get_products(category_id)

    for product in products:
        products_kb.add(InlineKeyboardButton(text=product, callback_data=f'product_{product}'))



    await callback.message.answer(f'Товары по выбранной категории:', reply_markup=products_kb.adjust(2).as_markup())
    await callback.answer('')

Код ошибок никаких не выдает, просто при нажатии на кнопку с группой пишет "Товары по выбранной категории:".
В таблицах все заполнено.
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

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