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

Как сделать условие в SQLite Python?

мне нужно сделать условие, что бы бот открывая мою таблицу, выбирал конкретно личностей с рангом "1", игнорируя ранг "0". потом, отсортировав их, бот должен отправить определенное сообщение для людей с рангом "1". кое-какой костыль я написал, но кодом игнорируется условие и бот отправляет сообщение и людям с рангом "0"

connect = sqlite3.connect('INFO.db')
cursor = connect.cursor()	

	for i in cursor.fetchone("SELECT ID FROM user_info WHERE RANK = '1'"):
		name_karma = i[0]
		bot_info = await bot.get_me()
		
            
		print(bot_info.username)

		if name_karma == 1:
			for admins in cursor.execute("SELECT * FROM user_info"):
				adminsID = list(admins)[0]
				print(adminsID)
				await bot.send_message(dminsID, text = ("Вам пришел репорт из беседы")
  • Вопрос задан
  • 215 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну так у тебя второй запрос запршивает всех пользователей, без условия.
А вообще приведённый код не имеет смысла и не должен работать вообще никак.
for i in cursor.fetchone("SELECT ID FROM user_info WHERE RANK = '1'"):

Ты перебираешь столбцы в первой строке (fetchone), для которой RANK = '1'. Это при том, что запрос возвращает тебе только один столбец - ID. А ещё метод fetchone() не принимает параметров. Ты пропустил вызов execute()?

Потом ты почему-то берёшь 0й символ этого столбца. Если он равен 1 (а он не будет равен 1, так как это символ, а не число).
Потом ты перебираешь всех пользователей, и отправляешь им сообщения (при этом у тебя в вызове send_message() две опечатки - в имени переменной и незакрытая скобка).

А ещё у тебя отступы кривые - почему for i с отступом?

В общем, по такой бредятине понять, в чём дело, нереально.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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