所以我一直有我的代碼有問題。以不同的值從多行返回數據
什麼即時試圖做的是我已經設置了類似的列表:
locationList = [['mt', 'moon', 'mt-moon'], ['misty', 'mis'], ['surge', 'sur'], ect...]
而且這是什麼是他們投入的人使用的,因此而不必輸入整個單詞,他們只是做縮寫。
現在我將這些存儲在數據庫中,包括人名,他們的積分,賭博積分和下注點。就像這樣:
**Name** | **Points** | **BetLocation** | **BetPoints**
-------- | ---------- | --------------- | -------------
James | 1000 | mis | 100
Mike | 3000 | misty | 700
Dave | 400 | mt | 200
現在什麼即時試圖做的是,當我選擇一個成功的位置,好比說我選擇飄渺,它將返回兩次詹姆斯和邁克但不戴夫。
if any(winner in s for s in locationList):
c = conn.cursor()
search = winner
for sublist in locationList:
if sublist[0] == search:
print(sublist)
print(str(sublist)[1:-1])
test1 = '(' + str(sublist)[1:-1] + ')'
print(test1)
c.execute("SELECT Name, CurrentBetValue FROM Users WHERE CurrentBetLocation IN('misty', 'mis')")
data = c.fetchall()
print(data)
for f in data:
kek = (f[1], f[0])
c.execute('UPDATE Users SET Points = Points + (? * 2) WHERE Name = ?', kek)
conn.commit()
betReset()
betsOpen = False
return send_message('"'+str(winner) + '"' + ' is the winning location, points have been updated.')
每個打印回報:
- [ '縹', '錯誤']
- '縹', '錯誤'
- ( '縹', '錯誤')
現在這項工作,因爲我已經手動把IN('misty', 'mis')
並返回我想要的。
但是如果我將其更改爲c.execute("SELECT Name, CurrentBetValue FROM Users WHERE CurrentBetLocation IN ?", test1)
c.execute("SELECT Name, CurrentBetValue FROM Users WHERE CurrentBetLocation IN ?", test1) sqlite3.OperationalError: near "?": syntax error
我想知道是否有人能幫助!
我沒有看到任何PHP代碼。 – aynber
是的抱歉idk爲什麼我把它放在oops – Jonese1234
知道數據庫和你使用的界面將有所幫助。 – polku