Задать вопрос
Ответы пользователя по тегу Telegram
  • Как вывести все записи из столбца на кнопки бота?

    @Alexa2007
    def buttons_create(buttons=[]):
    	keyboard = types.ReplyKeyboardMarkup(one_time_keyboard=True,resize_keyboard=True)
    	for _ in buttons:
    		keyboard.add(_)
    	return keyboard
    Ответ написан
    Комментировать
  • Каким образом прикрутить и вытянуть данные из БД в боте?

    @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')
    Ответ написан
    3 комментария
  • Python+mysqlite+bot telegarm не могу добавить в базу данных. Как правильно сделать?

    @Alexa2007
    #Создай отдельный файл с классом типа этого
    # импортируй from my_baza_class import base as b
    #В своём коде вставляй где хочешь
    #Пример внизу
    #
    import sqlite3
    
    
    class base:
        def __init__(self,table):
            self.table = table
            self.conn = sqlite3.connect("mydatabase.db")
            self.cursor = self.conn.cursor()
            print("Open DB")
    
    
        def __del__(self):
            print("CloseDB")
    
    
        def insert(self, full_name,last_name):
            sql = f"INSERT INTO {self.table} VALUES (null,'{full_name}', '{last_name}') "
            self.cursor.execute(sql)
            self.conn.commit()
            print('INSERT DONE')
    
    
        def select(self):
            res=[]
            sql = f"SELECT * FROM {self.table}"
            for _ in self.cursor.execute(sql):
                res.append(str(_[0]) +' '+ str(_[1])+' '+str(_[2]))
            print('SELECT DONE')
            return res
    
        def create_table(self):
            try:
                self.cursor.execute(f"""CREATE TABLE IF NOT EXISTS {self.table}
                          (id integer primary key AUTOINCREMENT, full_name text, last_name text)
                       """)
                self.conn.commit()
                print('CREATE TABLE DONE')
            except Exception as e:
                print('ERROR')
    
    
    
    
    
    #b = base('users')
    #b.create_table()
    #for x in range(1,4):
    #    b.insert(f'full_name{x}',f'last_name{x}')
    
    #x = b.select()
    #print(x)
    Ответ написан
    1 комментарий