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

Как подтянуть user_id из таблицы sqlite3 telebot?

Подключил sqlite3, данные про id получаю в таблице, нужно чтобы при нажатии кнопки принять сообщение отправлялось пользователю. Вот код с подключённым sqlite import sqlite3
import sqlite3
import telebot
from telebot import types
token='***************'
bot=telebot.TeleBot(token)
conn = sqlite3.connect('/Users/User/PycharmProjects/pythonProject3/.venv/db/database', check_same_thread=False)
cursor = conn.cursor()
@bot.callback_query_handler(func=lambda call: True)

def callback_inline(call):
        if call.message:
            if call.data == 'menu1':
                markup = types.InlineKeyboardMarkup()
                switch_button3 = types.InlineKeyboardButton(text='fragolino', callback_data="menu4")
                markup.add(switch_button3)
                switch_button4 = types.InlineKeyboardButton(text='fragolino2', callback_data="menu4")
                markup.add(switch_button4)
                switch_button5 = types.InlineKeyboardButton(text='fragolino3', callback_data="menu4")
                markup.add(switch_button5)
                bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="выбери товар", reply_markup = markup)
            if call.data == 'oper':
                bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                          text="Наш оператор @fluacyl, оступен с 8:00-23:00")
            if call.data == 'menu4':
                markup = types.InlineKeyboardMarkup()
                switch_button3 = types.InlineKeyboardButton(text='btc', callback_data="menu5")
                markup.add(switch_button3)
                switch_button4 = types.InlineKeyboardButton(text='efr', callback_data="menu6")
                markup.add(switch_button4)
                switch_button5 = types.InlineKeyboardButton(text='natyra_axax', callback_data="menu7")
                markup.add(switch_button5)
                bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="выбери оплату", reply_markup = markup)
            if call.data == 'menu5':
                bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                      text="Кошелек для оплаты:27589564, после оплаты подтверди /test")
            if call.data == 'menu6':
                bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                      text="Кошелек для оплаты:65484116, после оплаты подтверди /test")
            if call.data == 'menu7':
                bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                      text="Кошелек для оплаты:87645484, после оплаты подтверди /test")
            if call.message.chat.type == "group":
                if call.message:
                    if call.data == 'menu12':
                        bot.send_message(chat_id=root, text="Успешно ")

root= ВОПРОС ЗДЕСЬ

@bot.message_handler(commands=['test'])
def start(message: types.Message):
    bot.send_message(message.chat.id, text="Данныйе оплаты формат ДД.ММ.ГГГГ, сума")
    bot.register_next_step_handler(message, get_name)


def get_name(message: types.Message):
    markup = types.InlineKeyboardMarkup()
    switch_button12 = types.InlineKeyboardButton(text='Принять', callback_data="menu12")
    markup.add(switch_button12)
    switch_button13 = types.InlineKeyboardButton(text='Отклонить', callback_data="menu13")
    markup.add(switch_button13)
    bot.forward_message(chat_id=-4515258659, from_chat_id=message.chat.id, message_id=message.message_id)
    bot.send_message(chat_id=-4515258659, text=f"{message.text} Введите ид пользователя", reply_markup=markup)



@bot.callback_query_handler(func=lambda call: call.data.startswith("menu12"))
def handle_from_admin(call: types.CallbackQuery):
    bot.answer_callback_query(callback_query_id=call.id)

    if call.message.chat.type == "group":
        if call.message:
            if call.data == 'menu12':
                bot.send_message(chat_id=call.message.chat.id, text="jf")


def db_table_val(user_id: int, user_name: str, user_surname: str, username: str):
  cursor.execute('REPLACE INTO test (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)', (user_id, user_name, user_surname, username))
  conn.commit()
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    if message.text.lower() == 'привет':
        bot.send_message(message.from_user.id , 'Привет! Ваше имя добавленно в базу данных!')

        us_id = message.from_user.id
        us_name = message.from_user.first_name
        us_sname = message.from_user.last_name
        username = message.from_user.username


        db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username)


bot.infinity_polling(none_stop=True,interval=0)

Пробовал выносить но сразу выдаёт ошибку
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Через запрос к БД:
SELECT user_id FROM ... WHERE ...
После FROM указывается таблица, откуда надо взять значение, а после WHERE условия
Ответ написан
Ваш ответ на вопрос

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

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