HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.09.2023, 23:31
triazov
Участник форума
Регистрация: 23.08.2022
Сообщений: 263
С нами: 1962097

Репутация: 33
По умолчанию

В функции /profile должно выдавать всю информацию из базы данных

Но ошибок нет как и вывода чего то

@kapusta_gamebot:





Код:
import
sqlite3
import
telebot

bot
=
telebot
.
TeleBot
(
"нету"
)
conn
=
sqlite3
.
connect
(
'db/kapustagame_one.db'
,
check_same_thread
=
False
)
cursor
=
conn
.
cursor
(
)
def
db_table_val
(
user_id
:
int
,
user_name
:
str
,
user_surname
:
str
,
username
:
str
)
:
cursor
.
execute
(
'INSERT INTO users (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)'
,
(
user_id
,
user_name
,
user_surname
,
username
)
)
conn
.
commit
(
)
def
user_exists
(
user_id
)
:
"""Проверяем, есть ли юзер в БД"""
result
=
cursor
.
execute
(
"SELECT 1 FROM users WHERE user_id = ?"
,
[
user_id
]
)
.
fetchone
(
)
return
bool
(
result
)
@bot.message_handler
(
commands
=
[
'start'
]
)
def
start_message
(
message
)
:
bot
.
send_message
(
message
.
chat
.
id
,
'Добро пожаловать в KapustaGame🥬\nЗдесь ты можешь заработать разные призы🎁\nДля регистрации напишите /register'
)
@bot.message_handler
(
content_types
=
[
'text'
]
)
def
get_text_messages
(
message
)
:
if
message
.
text
.
lower
(
)
==
'/register'
:
if
(
user_exists
(
message
.
chat
.
id
)
)
:
bot
.
send_message
(
message
.
chat
.
id
,
'Не удалось🚫! Вы уже зарегистрированны!'
)
else
:
bot
.
send_message
(
message
.
chat
.
id
,
'Ваш аккаунт зарегистрирован в базу данных✅\nИнформацию о аккаунте можно узнать в /profile'
)
us_id
=
message
.
from_user
.
id
us_name
=
message
.
from_user
.
first_name
            us_sname
=
message
.
from_user
.
last_name
            username
=
message
.
from_user
.
username
            kap
=
0
mon
=
0
db_table_val
(
user_id
=
us_id
,
user_name
=
us_name
,
user_surname
=
us_sname
,
username
=
username
)
@bot.message_handler
(
commands
=
[
'profile'
]
)
def
handle_profile_command
(
message
)
:
# Получаем информацию о пользователе из базы данных
user_id
=
message
.
chat
.
id
cursor
.
execute
(
'SELECT id, user_id, user_name, user_surname, username, kapusta, money FROM users WHERE user_id=?'
,
(
user_id
,
)
)
profile
=
cursor
.
fetchone
(
)
# Формируем сообщение с информацией о профиле
if
profile
:
id
,
user_id
,
user_name
,
user_surname
,
username
,
kapusta
,
money
=
profile
        response
=
f'Ваш профиль🤔\n🆔 Ваш ID:{id}\n Ваш id в телеграмме:{user_id}\n Ваше имя в телеграмме:{user_name}\nВаша фамилия в телеграмме:{user_surname}\nВаш username:{username}\n🥬 Баланс Капусты:{kapusta}\nБаланс RUB:{money}'
else
:
response
=
'Профиль не найден'
# Отправляем сообщение с информацией о профиле
bot
.
send_message
(
message
.
chat
.
id
,
response
)
# Обрабатываем сообщения с командами
print
(
'Бот запущен успешно!'
)
bot
.
polling
(
none_stop
=
True
)




up
 
Ответить с цитированием

  #2  
Старый 28.09.2023, 19:38
Python_newbie
Новичок
Регистрация: 07.06.2023
Сообщений: 0
С нами: 1546818

Репутация: 0
По умолчанию

Цитата:
Сообщение от triazov  

В функции /profile должно выдавать всю информацию из базы данных
Но ошибок нет как и вывода чего то

@kapusta_gamebot:





Код:
import
sqlite3
import
telebot

bot
=
telebot
.
TeleBot
(
"нету"
)
conn
=
sqlite3
.
connect
(
'db/kapustagame_one.db'
,
check_same_thread
=
False
)
cursor
=
conn
.
cursor
(
)
def
db_table_val
(
user_id
:
int
,
user_name
:
str
,
user_surname
:
str
,
username
:
str
)
:
cursor
.
execute
(
'INSERT INTO users (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)'
,
(
user_id
,
user_name
,
user_surname
,
username
)
)
conn
.
commit
(
)
def
user_exists
(
user_id
)
:
"""Проверяем, есть ли юзер в БД"""
result
=
cursor
.
execute
(
"SELECT 1 FROM users WHERE user_id = ?"
,
[
user_id
]
)
.
fetchone
(
)
return
bool
(
result
)
@bot.message_handler
(
commands
=
[
'start'
]
)
def
start_message
(
message
)
:
bot
.
send_message
(
message
.
chat
.
id
,
'Добро пожаловать в KapustaGame🥬\nЗдесь ты можешь заработать разные призы🎁\nДля регистрации напишите /register'
)
@bot.message_handler
(
content_types
=
[
'text'
]
)
def
get_text_messages
(
message
)
:
if
message
.
text
.
lower
(
)
==
'/register'
:
if
(
user_exists
(
message
.
chat
.
id
)
)
:
bot
.
send_message
(
message
.
chat
.
id
,
'Не удалось🚫! Вы уже зарегистрированны!'
)
else
:
bot
.
send_message
(
message
.
chat
.
id
,
'Ваш аккаунт зарегистрирован в базу данных✅\nИнформацию о аккаунте можно узнать в /profile'
)
us_id
=
message
.
from_user
.
id
us_name
=
message
.
from_user
.
first_name
            us_sname
=
message
.
from_user
.
last_name
            username
=
message
.
from_user
.
username
            kap
=
0
mon
=
0
db_table_val
(
user_id
=
us_id
,
user_name
=
us_name
,
user_surname
=
us_sname
,
username
=
username
)
@bot.message_handler
(
commands
=
[
'profile'
]
)
def
handle_profile_command
(
message
)
:
# Получаем информацию о пользователе из базы данных
user_id
=
message
.
chat
.
id
cursor
.
execute
(
'SELECT id, user_id, user_name, user_surname, username, kapusta, money FROM users WHERE user_id=?'
,
(
user_id
,
)
)
profile
=
cursor
.
fetchone
(
)
# Формируем сообщение с информацией о профиле
if
profile
:
id
,
user_id
,
user_name
,
user_surname
,
username
,
kapusta
,
money
=
profile
        response
=
f'Ваш профиль🤔\n🆔 Ваш ID:{id}\n Ваш id в телеграмме:{user_id}\n Ваше имя в телеграмме:{user_name}\nВаша фамилия в телеграмме:{user_surname}\nВаш username:{username}\n🥬 Баланс Капусты:{kapusta}\nБаланс RUB:{money}'
else
:
response
=
'Профиль не найден'
# Отправляем сообщение с информацией о профиле
bot
.
send_message
(
message
.
chat
.
id
,
response
)
# Обрабатываем сообщения с командами
print
(
'Бот запущен успешно!'
)
bot
.
polling
(
none_stop
=
True
)



up
Проблема в том, что message.chat.id и message.from_user.id - это разные айдишникию Ты добавляешь в базу один айдишник, а при поиске используешь другой
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.