2016-07-24 16 views
-2

我想同時在一個函數中有兩個select查詢。如何在一個函數中有2個select查詢?

在shop.html:

{% for each in result %} 
    {{ each }}<br> 
{% endfor %} 


{% for each in result2 %} 
    {{ each }}<br> 
{% endfor %} 

在app.py:

@app.route('/shop/<data>') 
def shop(data): 
    db = MySQLdb.connect("localhost","myusername","mypassword","mydbname") 

    cursor = db.cursor() 
    cursor2 = db.cursor() 


    query_string = "SELECT * from users" 
    query_string2 = "SELECT * from people" 


    cursor.execute(query_string) 
    cursor2.execute(query_string2) 


    result = cursor.fetchall() 
    result2 = cursor.fetchall() 

    db.close() 


    return render_template('shop.html', result=result, result2=result2) 

但它不工作。它只是獲取並打印第一個選擇查詢。 我該如何解決它?

+0

您的代碼工作得很好;你確定*第二個選擇查詢返回任何數據嗎?換句話說,你是否嘗試過執行*只是*第二個查詢,或試圖查看當你將它們交換時發生了什麼? –

+0

是的,每個查詢都可以正常工作,但是當它們都在一個函數中收集時,則不會。 – niloofar

+1

是的,你有一個錯字。第二次調用應該是'result2 = cursor2.fetchall()'。 –

回答

1

您試圖從遊標兩次一個獲取:

result = cursor.fetchall() 
result2 = cursor.fetchall() 

請注意,您在稱爲cursor.fetchall()這兩種情況下。您希望第二個結果來自第二個光標:

result = cursor.fetchall() 
result2 = cursor2.fetchall() 
+0

是的,只是有點小錯誤。 – niloofar

相關問題