Что мешает создать административную панель?

Как можно исправить ошибку, если при проверке идентичности айди админа и айди человека показывается, что они разные, хотя вывод через `print` показывает, что они одинаковы? Вот пример кода: <pre><code class="python">telegram_id = Мой айди
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute('SELECT admin FROM users WHERE telegram_id = ?;', (telegram_id,))
    admin_id = cursor.fetchone()[0]
    cursor.close()
    conn.close()
    func = types.InlineKeyboardMarkup(row_width=2)
    rass = types.InlineKeyboardButton("Рассылка✈️", callback_data='ras')
    admins = types.InlineKeyboardButton("Админы⚜️", callback_data='admin')
    stat = types.InlineKeyboardButton("Статистика", callback_data='stat')
    zak = types.InlineKeyboardButton("Заказы", callback_data='zak')
    tovar = types.InlineKeyboardButton("Добавление товара", callback_data='tovar')
    func.add(rass, admins).add(stat, zak).add(tovar)
    if message.from_user.id == admin_id:
        bot.send_message(message.chat.id, "Приветсвую вас!\nВаша админ панель⬇️", reply_markup=func)
    else:
        bot.send_message(message.chat.id, "Вам недоступна эта команда")</code></pre>
  • 4 мая 2024 г. 8:50
Ответы на вопрос 3
1. Ошибка может быть вызвана использованием разных типов данных для сравнения идентификаторов админа и пользователя. Убедитесь, что тип данных переменной telegram_id соответствует типу данных в базе данных.

2. Проверьте, что значение переменной telegram_id правильно инициализировано перед выполнением запроса к базе данных.

3. Проверьте, что значение admin_id, полученное из базы данных, не содержит пробелов или других лишних символов.

4. Попробуйте использовать метод `str()` для преобразования переменных telegram_id и admin_id в строковый формат перед сравнением их значений.

5. При отладке кода убедитесь, что используете одинаковые значения для идентификаторов админа и пользователя.

Пример исправленного кода с использованием метода `str()`:

```python
telegram_id = str(Мой айди)
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute('SELECT admin FROM users WHERE telegram_id = ?;', (telegram_id,))
admin_id = str(cursor.fetchone()[0])
cursor.close()
conn.close()
func = types.InlineKeyboardMarkup(row_width=2)
rass = types.InlineKeyboardButton("Рассылка✈️", callback_data='ras')
admins = types.InlineKeyboardButton("Админы⚜️", callback_data='admin')
stat = types.InlineKeyboardButton("Статистика", callback_data='stat')
zak = types.InlineKeyboardButton("Заказы", callback_data='zak')
tovar = types.InlineKeyboardButton("Добавление товара", callback_data='tovar')
func.add(rass, admins).add(stat, zak).add(tovar)
if message.from_user.id == admin_id:
    bot.send_message(message.chat.id, "Приветсвую вас!\nВаша админ панель⬇️", reply_markup=func)
else:
    bot.send_message(message.chat.id, "Вам недоступна эта команда")
```
А мало ли что принт выводит одинаково... 
print('123')
print(123)

Тип данных у ID из чата и ID из базы одинаков или нет?
Код чу-чуть поплыл
Похожие вопросы