Ребят привет!
Никак не могу разобраться (разбираюсь сам - сильно не бейте)
Есть такой кусок кода (комменты в нём - это вопросы и пояснения)
#Соеденилис с БД - тут всё ок
users = sqlite3.connect('users.db')
cur = users.cursor()
try:
player_nick = (message.text)
cur.execute(f"""SELECT nickname FROM users WHERE user_id= {message.from_user.id}""")
res = cur.fetchone() #Вытащили никнейм из БД по user_id - тоже ок
cur.execute(f"""SELECT nickname FROM users LIKE %?""")
all_nick = cur.fetchall() #Вот тут что-то идёт не так и он не выбирает все ники из колонки nickname
while(res == None) or (res == all_nick): #Цикл повторяется - пока поле nickname пустое или содержит уже имеющийся ник пользователя
if (res == None) and (res == all_nick): #Если поле nickname пустое и не содержит таких же ников, то добавляет новый ник из сообщения пользователя. Тут всё окей, но нет проверки на "совпадение ников из БД", из-за проблемы описанной выше.
cur.execute(f"""INSERT INTO users (user_id, user_name, user_lastname, username, nickname, age) VALUES ('{message.from_user.id}', '{message.from_user.first_name}', '{message.from_user.last_name}', '{message.from_user.username}', '{player_nick}', '18')""")
users.commit() #Добавили, записали
elif res == all_nick:
await message.answer(f'Ник уже занят...\nВыбери другой!', parse_mode='HTML') #Если ник уже занят - выводит сообщение, что он занят. Но если написать ник снова, то дальше ничего не происходит, хотя вроде он должен снова проверить ник на совпадение в БД и перезаписать, если совпадений нет.
else:
cur.execute(f"""UPDATE users SET nickname = '{player_nick}' WHERE user_id = {message.from_user.id}""") #Переписывает ник, если человек захотел его поменять. Всё ок
users.commit()
except:
pass
Второй день кручу это всё туда сюда, но ничего не выходит.
Подскажите - помогите пожалуйста!