2016-07-24 11 views
-2

同時に2つの選択クエリを1つの関数で使用したいと考えています。 shop.htmlで2つの選択クエリを1つの関数で持つ方法はありますか?

:app.pyで

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


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

@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

コードはうまく動作します。あなたは*特定の* 2番目の選択クエリは任意のデータを返しますか?言い換えれば、* 2番目のクエリを実行しようとしましたか?またはそれらを入れ替えたときに何が起こったのか見てみましたか? –

+0

はい各クエリはうまく機能しますが、両方が1つの関数に集まっている場合は機能しません。 – niloofar

+1

はい、タイプミスがあります。 2番目の呼び出しは 'result2 = cursor2.fetchall()'でなければなりません。 –

答えて

1

あなたは二回、カーソルのからフェッチしようとした:あなたはで両方のケースをcursor.fetchall()と呼ばれる

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

注意を。 2番目の結果が2番目のカーソルから来るようにしたかった:

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

はい、ちょっと間違いでした。 – niloofar

関連する問題