Я изменил свою базу данных, чтобы включить переменную 0/1, если пользователь находится в переменной, изменится на 1 и изменится на 0, если пользователь закроет окно / отключится.
это то, какбаза данных была создана
cursor.execute('''
CREATE TABLE IF NOT EXISTS user(
userID INTEGER PRIMARY KEY,
username VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
user_on INTEGER(20) NOT NULL);
''')
Это код, который я пытаюсь использовать в своей функции входа в систему.
find_user_lite = ("SELECT * FROM user WHERE username = ?")
cursor.execute(find_user_lite,[(username)])
if cursor.fetchall():
on_state = int(1)
change_state = ("UPDATE user SET user_on = ? WHERE username = ?")
cursor.execute(change_state,[(on_state),(username)])
Когда я нажимаю кнопку входа в систему, у меня появляется отдельная server.py
, котораявыполняет большинство операций администрирования базы данных, таких как просмотр базы данных, создание новых пользователей и т. д.
Когда я пытаюсь запустить функцию, отображающую текущих пользователей, ничего не отображается, кроме []
.
gyazo.com
Вот функция, которая отображает текущих онлайн-пользователей:
def display_users():
with sqlite3.connect("apc.db") as db:
cursor = db.cursor()
cursor.execute("SELECT * FROM user WHERE user_on")
print(sum(cursor.fetchall()))
db.commit()