Python SQLite3 функция не печатает никаких данных - PullRequest
0 голосов
/ 16 февраля 2019

Я создал функцию, которая должна отправлять все элементы с уровнем запаса менее 10 в моей базе данных в текстовый файл.Но я не получаю никаких данных, когда нажимаю кнопку переупорядочения.

def Database():
    global conn, cursor
    conn = sqlite3.connect("main_storage.db")
    cursor = conn.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS `admin` (admin_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, username TEXT, password TEXT)")
    cursor.execute("CREATE TABLE IF NOT EXISTS `product` (product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, product_name TEXT, product_qty TEXT, product_price TEXT)")
    cursor.execute("CREATE TABLE IF NOT EXISTS `basket` (product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, product_name TEXT, product_qty TEXT, product_price TEXT)")
    cursor.execute("SELECT * FROM `admin` WHERE `username` = 'admin' AND `password` = 'admin'")
    if cursor.fetchone() is None:
        cursor.execute("INSERT INTO `admin` (username, password) VALUES('admin', 'admin')")
        conn.commit()

def reorder():
    global items
    Database()
    cursor.execute("SELECT `product_name` FROM `product` WHERE `product_qty` <= 10")
    items = cursor.fetchall()
    print(items)
    cursor.close()
    conn.close()

Я ожидаю, что на выходе будет массив элементов в моей базе данных, например [44, 'motherboard', 9, 80], где 44это product_id, материнская плата это product_name, 9 это product_stock и 80 это product_price.На самом деле я получаю массив, в котором нет ничего похожего: []

1 Ответ

0 голосов
/ 17 февраля 2019

product_qty определяется как столбец TEXT , поэтому сравнение, например <=, будет выполняться между string значениями операндов.Это может не дать ожидаемых результатов:

>>> '8' < '10'
False

Создайте заново свои таблицы с INTEGER или REAL в качестве типа столбца для числовых значений, чтобы получить поведение, котороеты хочешь.Например:

cursor.execute("""CREATE TABLE IF NOT EXISTS `product` """
               """(product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"""
               """product_name TEXT, product_qty INTEGER, product_price REAL)""")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...