Я пишу небольшую программу, которая позволяет мне искать в базе данных sqlite, assets
по номеру ресурса, серийному номеру и т. Д. Проблема в том, что я не уверен, что должен передавать пользовательский ввод, переменная assetNum
, в мое заявление sqlite SELECT
. Я хотел бы, чтобы он взял запрос пользователя assetNum
и вернул эту строку из таблицы sqlite.
Сначала я определил свою функцию:
def search_asset_num(conn):
cur = conn.cursor()
cur.execute("SELECT * FROM assets WHERE AssetNumber = '{}'".format(assetNum))
rows = cur.fetchall()
for row in rows:
print(row)
В программе я использую пользовательский ввод для перемещения по меню, поэтому позже в программе, когда я доберусь до «меню поиска по активам», у меня будет:
elif selection == '2':
menu2 = {}
menu2[' 1'] = "Search Assets by Name"
menu2[' 2'] = "Search Assets by Asset Number"
menu2[' 3'] = "Search Assets by Serial Number"
menu2[' 4'] = "Search Assets by Ownership"
menu2[' 5'] = "Go back!"
choices2 = menu2.keys()
for entry in choices2:
print(entry, menu2[entry])
selection2 = input("Enter number: ")
if selection2 == '2':
assetNum = input("Enter Asset Number: ")
search_asset_num(conn)
Проблема, насколько я могу судить, заключается в том, что assetNum
присутствует в функции search_asset_num()
выше, где она фактически определена в операторе if
как assetNum = input("Enter Asset Number: ")
. Я не уверен, как обойти это. Я пытался сделать assetNum
глобальным в самом верху моего кода и установить его равным 0
в качестве заполнителя, но это не сработало. Он просто выводит 0
на терминал.