В бд у каждого пользователя есть свое число. Я написал код на aiogram, но бот выдает одно и то же число(у каждого пользователя свое число). Как сделать так чтобы бот сопостовлял айди пользователя и айди из бд и отправлял число именно данного пользователя
from aiogram import Bot, types
from aiogram.types import ChatActions
import asyncio
import logging
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from config import TOKEN
import sqlite3
class SQLither:
def __init__(self, database) -> object:
self.conn = sqlite3.connect(database)
self.c = self.conn.cursor()
def exists_user(self, user_id):
return bool(self.c.execute("SELECT * FROM users WHERE user_id=?", (user_id,)).fetchone())
def add_to_db(self, user_id, first_name, last_name, username):
self.c.execute("INSERT INTO users(user_id, first_name, last_name, username) VALUES(?,?,?,?,?)", (user_id, first_name, last_name, username, number))
self.conn.commit()
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
db = SQLither("db.db")
@dp.message_handler(commands=['start'])
async def process_hi1_command(message: types.Message):
user_id = message.from_user.id
first_name = message.from_user.first_name
last_name = message.from_user.last_name
username = message.from_user.username
if not db.exists_user(user_id):
db.add_to_db(user_id, first_name, last_name, username)
await message.answer('Добро пожаловать!')
@dp.message_handler(commands=['number'])
async def number(message: types.Message):
conn = sqlite3.connect('db.db')
cur = conn.cursor()
cur.execute(f"SELECT * FROM users WHERE user_id")
result = cur.fetchall()
user_id = message.from_user.id
await bot.send_message(message.from_user.id, f'Ваше число: = {[list(result[0])[5]][0]}')
if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)