@Complu

Пытаюсь подключиться к БД и взять оттуда данные но ничего не получается при попытке это вывести?

При использовании этого куска кода ничего не выводит:
@bot.message_handler(content_types=['text'])
def func(message):
    if message.text == "Мой текст":
        bot.send_message(message.chat.id, "Мой текст")
    elif message.text == "ТЕКСТ":
        for i in cur.execute("SELECT user_numb FROM user"):
            usname = message.from_user.first_name
            usoper = randint(0, 12)
            usnum = i + usoper
            cur.execute(f"INSERT INTO user(user_name, user_numb) VALUES({usname}, {usnum})")
            db.commit()
            bot.send_message(message.chat.id, f"текст <b>{usoper}</b> текст {usnum}",
                             parse_mode="html")

bot.polling(none_stop=True)


import sqlite3
from random import randint
import config

import telebot
from telebot import types

bot = telebot.TeleBot(config.TOKEN)

db = sqlite3.connect("drtyDB.db", check_same_thread=False)
cur = db.cursor()

cur.execute("CREATE TABLE IF NOT EXISTS user (user_id INT, user_name TEXT, user_numb INT)")


@bot.message_handler(content_types=['text'])
def func(message):
    if message.text == "Мой текст":
        bot.send_message(message.chat.id, "Мой текст")
    elif message.text == "ТЕКСТ":
        for i in cur.execute("SELECT user_numb FROM user"):
            usname = message.from_user.first_name
            usoper = randint(0, 12)
            usnum = i + usoper
            cur.execute(f"INSERT INTO user(user_name, user_numb) VALUES({usname}, {usnum})")
            db.commit()
            bot.send_message(message.chat.id, f"текст <b>{usoper}</b> текст {usnum}",
                             parse_mode="html")

bot.polling(none_stop=True)
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Klaidonis
Что бы брать данные из бд, тебе надо использовать следующие.
cursor.execute("Select * From table_name)
result = cursor.fetchall() - выбрать все записи
for row in result:
bot.send_messagr(chat_id, row[0]) - индекс 0,1 и тд это номер столбца.

дальше ты не правильно заносишь данные
cursor.execute(f"Insert into table_name (id, name) Values(?,?);", (Id, name)) в конце идут переменные которым ты дал значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы