Ответы пользователя по тегу SQLite
  • Почему выдает ошибку "sqlite3.OperationalError: near "users": syntax error"?

    @TKDBOT
    Учу python. Готов к конструктивной критике.
    Ты пытаешься записать user id, а в таблице нет такого заголовка.
    Т.е. ты создал таблицу с 3 полями. Id, money и bitcoin. А потом хочешь записать куда-то user id.

    И проверь запрос на добавление данных.
    Ответ написан
    Комментировать
  • Как отправить все значения пользователю из SQLITE3 | Python?

    @TKDBOT
    Учу python. Готов к конструктивной критике.
    Есть 2 варианта.
    1.
    for i in q.fetchall():
        bot.send_message(chat.id, i[0])

    2.
    l = []
    for row in q.fetchall():
        l.append(row[0])
    bot.send_message(chat.id, l)
    Ответ написан
  • Как добавить id пользователя в телеграмме в sqlite?

    @TKDBOT
    Учу python. Готов к конструктивной критике.
    1. Создаешь подключение к базе.
    2. Создаешь курсор.
    3. Составляешь запрос в БД.
    4. Сохраняешь базу
    5. Закрываешь соединение.
    conn = sqlite3.connect('database.db')
    cur = conn.cursor()
    cur.execute("INSERT INTO basket (name, date, product, much) VALUES (?, ?, ?, ?)", (user_id, 'none', 'Blue Razz Ice',  '1'))
    conn.commit()
    conn.close()
    Ответ написан
  • Как посчитать кол-во одинаковых строк в SQLite Telebot?

    @TKDBOT
    Учу python. Готов к конструктивной критике.
    import telebot
    from telebot import types
    import sqlite3
    bot = telebot.TeleBot(TOKEN)
    link = 'https://t.me/(name_bot)'
    
    
    @bot.message_handler(commands=['start'])
    def start(message):
        msg = str(message.text).rsplit(' ', 1)
        ref = types.ReplyKeyboardMarkup(resize_keyboard=True)
        ref_btn = types.KeyboardButton('Ваша реф ссылка')
        ref_btn2 = types.KeyboardButton('Мои рефералы')
        ref.add(ref_btn, ref_btn2)
        conn = sqlite3.connect('db.db')
        cur = conn.cursor()
        user = cur.execute("SELECT id FROM users WHERE chat_id == ?", (message.chat.id,)).fetchone()
        if user:
            #Юзер уже сть в базе
            bot.send_message(message.chat.id, 'Доброго времени суток', reply_markup=ref)
        else: # Юзера пришел в первые
            if len(msg) == 2: #Проверяем есть ли реф сылка
                id_referer = msg[1]
                bot.send_message(message.chat.id, f'Вас пригласили в чат.\nID реферера: {msg[1]}', reply_markup=ref)
                cur.execute("INSERT INTO users(f_name, l_name, chat_id, referer) VALUES (?, ?, ?, ?)", (message.from_user.first_name, message.from_user.last_name, message.chat.id, id_referer))
                conn.commit()
                conn.close()
            else: # Сюда попадаем если реф ссылки нет
                cur.execute("INSERT INTO users(f_name, l_name, chat_id) VALUES (?, ?, ?)",
                            (message.from_user.first_name, message.from_user.last_name, message.chat.id))
                conn.commit()
                conn.close()
                bot.send_message(message.chat.id, 'Вы сами нашли наш чат', reply_markup=ref)
    
    
    @bot.message_handler(content_types=['text'])
    def ref(message):
        if message.text == 'Ваша реф ссылка':
            bot.send_message(message.chat.id, 'Ваша реф ссылка:')
            bot.send_message(message.chat.id, f'{link}?start={message.chat.id}')
        elif message.text == 'Мои рефералы':
            conn = sqlite3.connect('db.db')
            cur = conn.cursor()
            referal = cur.execute("SELECT * FROM users WHERE referer = ?", (message.chat.id,)).fetchall()
            bot.send_message(message.chat.id, f'Количество рефералов:\n    {len(referal)}')
    
    bot.infinity_polling()


    Структура БД:
    1. ID - int
    2. f_name - Имя, text
    3. l_name - Фамилия, text
    4. chat_id - telegram id юзера, int, уникальное значение в бд
    5. referer - telegram id реферера, int
    Ответ написан
    Комментировать