gpt4 book ai didi

python - SQLite、Python 和列表

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:02 26 4
gpt4 key购买 nike

我是 Python 和 SQLite 的新手,但我有一个程序,我希望用户输入他们想要从数据库表中订购的商品数量。他们输入产品和数量,选择查询应返回匹配的项目。它可以工作,只是它只打印出最后一个用户条目,而不是所有用户条目。我认为问题出在选择查询行上,但我无法弄清楚。我尝试了多种变体,但它要么崩溃,要么只返回最后一个用户条目。

enter code here
for i in range(orderQty):
prodItem = int(input("Enter your Item to the List: "))
userOrder.append(prodItem)
prodQty = int(input("Enter the item quantity: "))
userQty.append(prodQty)


for j in range(len(userOrder)):
cursor = connection.execute("SELECT GTINnum, Item, CurrentStock,Cost from orderFile WHERE GTINnum= ?", (prodItem,))


for row in cursor:
print ("GTINnum =", row[0], "Item = ", row[1], "Cost = ", row[2], "Qty Ordered=",(prodQty), "\n")
prodCost = prodQty * row[2]
print ("Total product cost is: ", (prodCost))

最佳答案

在区 block 中

for j in range(len(userOrder)):
cursor = connection.execute("SELECT GTINnum, Item, CurrentStock,Cost from orderFile WHERE GTINnum= ?", (prodItem,))
for row in cursor:
print ("GTINnum =", row[0], "Item = ", row[1], "Cost = ", row[2], "Qty Ordered=",(prodQty), "\n")
prodCost = prodQty * row[2]
print ("Total product cost is: ", (prodCost))

您正在一遍又一遍地使用上次用户输入的prodItemprodQty。替换为迭代您之前构建的列表的内容:

for j in range(len(userOrder)):
cursor = connection.execute("SELECT GTINnum, Item, CurrentStock,Cost from orderFile WHERE GTINnum= ?", (userOrder[j],))
for row in cursor:
print ("GTINnum =", row[0], "Item = ", row[1], "Cost = ", row[2], "Qty Ordered=",userQty[j], "\n")
prodCost = userQty[j] * row[2]
print ("Total product cost is: ", (prodCost))

也许我错过了一些事件,但应该清楚你被困在哪里......

更新:当您只想进行一个选择时,您必须生成一系列 ?,例如通过

q = "(" + ",".join(["?" for x in userOrder]) + ")"

并将其附加到以 in 结尾的查询中。您还必须将 list userOrder 转换为元组。但是,与 prodQty 中条目的顺序相比,调整结果的顺序就变得很复杂。简单地将数组作为参数传递并期望它将 =“扩展”为 in 是行不通的。如果您不想完全改变您的程序,我不会尝试这样做。

关于python - SQLite、Python 和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com