Выбор идентификатора, который соответствует пользовательскому вводу в SQLite3 Python - PullRequest
0 голосов
/ 09 января 2020

Я бы хотел дать пользователю возможность выбрать идентификатор для просмотра отчета matplotlib из ... Однако я застрял при выборе данных, где категория соответствует вводу пользователя (id_input)

if report_option == "A":
    print("Expense Report by Category: \n")
    id_input = input("Please enter the ID of the Category you would like to view: \n")
    c.execute("SELECT * FROM tblCategory")
    for row in c.fetchall():
        print(row)
    c.execute('SELECT CategoryID, AmountSpent FROM tblFinance')
    categories = []
    amountspent = []
    for row in c.fetchall():
        print(row[0])
        categories.append(row[0])
        amountspent.append(row[1])

    plt.plot(categories, amountspent)
    plt.ylabel('Amount Spent')
    plt.xlabel('Category ID')
    plt.show()
    menu()

Любая помощь будет высоко ценится!

1 Ответ

2 голосов
/ 09 января 2020

Я предполагаю, что вы пытаетесь выбрать AmountSpent из tblFinance, где CategoryID - это пользовательский ввод.

id_input = input("Please enter the ID of the Category you would like to view: \n")
data = []
for row in c.execute("SELECT AmountSpent FROM tblFinance WHERE CategoryID=?", (id_input, )):
   data.append(row)
return data #use data variable here however you need with matplotlib

Объяснение:

Вы хотите создать SELECT x ОТ y ГДЕ z = оператор, который выбирает x из таблицы y, где z - это a. В основном, что это говорит. Вы можете использовать ? и второй параметр, чтобы получить данные, основанные на вводе. Если у вас есть дополнительные вопросы, сообщите мне.

Редактировать:

Если вы хотите выбрать и AmountSpent, и CategoryID, замените оператор SQL на "SELECT CategoryID, AmountSpent FROM tblFinance WHERE CategoryID=?"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...