Answer the question
In order to leave comments, you need to log in
Bot vk_api does not work with the database.?
def event1():#ЦИКЛ 1 В ФУНКЦИИ ЧТОБЫ ВЫЙТИ ИЗ ВЛОЖ ЦИКЛОВ
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
message = event.text.lower()
id = event.user_id
vk_session.method('messages.send', {'peer_id' : id, 'message' : 'Нажми на кнопоку', 'keyboard' : start_key, 'random_id' : 0})
while True:
id = event.user_id
sql.execute("SELECT * FROM users WHERE id = ?", (id,))
# ПРОВЕРКА ЕСТЬ ЛИ id в БД
user = sql.fetchone()
if user == None:# ЕСЛИ НЕТ
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
message = event.text.lower()
id = event.user_id
if message == 'начать':
vk_session.method('messages.send', {'peer_id' : id, 'message' : 'Вы ещё не зарегистрированы\n\nНапишите свой никнейм', 'random_id' : 0})
break
else:
vk_session.method('messages.send', {'peer_id' : id, 'message' : 'Вы ещё не зарегистрированы\n\nНапишите свой никнейм', 'random_id' : 0})
break
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
message = event.text.lower()
id = event.user_id
nik = message
vk_session.method('messages.send', {'peer_id' : id, 'message' : 'Ваш профиль:\nID — '+str(id)+'\nНик — '+nik, 'random_id' : 0})
user = (id, nik)
sql.execute("INSERT INTO Users VALUES(?, ?);", user)
db.commit()
break
elif user != None:# ЕСЛИ ЕСТЬ, ТО ВЫХОДИМ ИЗ ВСЕХ ЦИКЛОВ И ПЕРЕХОДИМ НА ЦИКЛ 2
vk_session.method('messages.send', {'peer_id' : id, 'message' : 'Вы зарегистрированы', 'keyboard' : menu_key, 'random_id' : 0})
return
a = event1() # ЦИКЛ 1 ФУНКЦИИ
for event in longpoll.listen(): # ЦИКЛ 2
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
message = event.text.lower()
id = event.user_id
if message == 'меню':
# ...
# здесь чел должен оказаться если он есть в БД
Answer the question
In order to leave comments, you need to log in
Because you are using an infinite loop which is blocking the thread. It is not at all clear why he is here, if you can do without him.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question