@violpeople

Каким образом прикрутить и вытянуть данные из БД в боте?

Есть бот,который должен по нажатию кнопки 'наименования товара' заменять прошлое сообщение и выводить данные из БД. Понимаю,что должна быть прикручена БД и тоже не особо понимаю,как именно в случае бота это сделать.
@bot.callback_query_handler(func = lambda call: True)
def callback(call):
			if call.data == 'catalog':
				kb = types.InlineKeyboardMarkup(row_width=2)
				item1 = types.InlineKeyboardButton('Эквадорская роза', callback_data='Ecuador')			
kb.add(item1)
				bot.edit_message_text(chat_id = call.message.chat.id,message_id=call.message.message_id,
		text = 'Выберите категорию товара',reply_markup = kb)
			elif call.data == 'Ecuador':
					kb = types.InlineKeyboardMarkup(row_width=2)
					item3 = types.InlineKeyboardButton('Следуюший товар',callback_data = 'next')
					item4 = types.InlineKeyboardButton('Предыдущий товар', callback_data = 'previous')
					item2 = types.InlineKeyboardButton('Добавить в корзину',callback_data = 'add_cart')
					item1= types.InlineKeyboardButton('Назад',callback_data='bac')
					kb.add(item3,item4,item2,item1)
					bot.edit_message_text(chat_id = call.message.chat.id,message_id=call.message.message_id,
		text = 'dude' ,reply_markup=kb)

Всё.Тупик
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@Alexa2007
Это ответ на вопрос
Python+mysqlite+bot telegarm не могу добавить в базу данных. Как правильно сделать?

Также, если не ошибаюсь edit_message_text работает с сообщениями которым не более 24 часов
Еще не пробовал на своём магазине, но есть шанс, что если пользователь нажмет кнопку "далее" бот просто рухнет
И еще необходимо хранить позицию каждого пользователя, где он находится, то есть:
нажал кнопку "Куртки"
бот в базу пишет (раздел куртки позиция 1)
нажал кнопку "далее"
бот читает из базы раздел, и позицию, прибавляет или вычитает 1, проверяет чтобы число не было 0 или -1 или больше чем кол-во позиций иначе он опять таки рухнет
Короче я как-то это сделал, но из-за того что это в результате будет мусорко-переписка, думаю такая реализация магазина не зайдет

Чтобы голова не лопнула от кучи elif
Раздели на несколько хендлеров
@bot.callback_query_handler(func=lambda call: call.data == '7')
def seven(call):
    bot.send_message(call.message.chat.id,text = 'seven')

@bot.callback_query_handler(func=lambda call: call.data == '1')
def one(call):
    bot.send_message(call.message.chat.id,text = 'one')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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