2015-08-28 80 views
0

我想從python 3.4中使用tkinter模塊在treeview小部件中的相應列中輸出2個不同的sql查詢返回值當我在第一列下面定義的運行命令打印所有條目正確,但名稱列將在所有行中打印第一個結果的名稱,而不是每個行的名稱。任何想法做什麼即時錯誤?在python中使用tkinter模塊的treeview列中的sql輸出

def refreshtrade(): 

     for i in treeview.get_children(): 
      treeview.delete(i) 


      #order number 
     refreshtradein = conn.cursor()     
     refreshtradein.execute("SELECT increment_id FROM mg_ikantam_buyback_order") 

      #first name 
     names =conn.cursor() 
     names.execute("SELECT customer_firstname FROM mg_ikantam_buyback_order")# WHERE increment_id = 'buyback-%s'" %(tradeinentryfield.get())) 

     for n in names: 
      for r in refreshtradein: 
        treeview.insert('',0,r,text = r, values=(n,'Mercedes', 'Purchased', '8-34-15')) 



     refreshtradein.close() 
     conn.close() 

回答

1

爲什麼你使用兩個不同的遊標,因此兩個嵌套for循環?你知道如何評估嵌套for循環嗎?

querycursor = conn.cursor() 
querycursor.execute(SELECT increment_id, customer_firstname FROM mg_ikantam_buyback_order) 

for row in querycursor: 
    print(row[0]) 
    print(row[1]) 

哦,關於你的where子句。永遠不要做那樣的參數替換。這是很大的安全隱患

here如何正確地做到這一點

+0

感謝您的反饋,並沒有即時不知道這樣感謝的洞察力。我會試着去理解你的反應,因爲我對編碼非常陌生,但它對我來說並不直觀,但我會以我的結果作出迴應。再次感謝 –

+0

我得到一個AttributeError:'元組'對象沒有屬性'increment_id'錯誤,當我嘗試你的建議 –

+0

感謝人,即時通訊仍然是非常新的明顯,我感謝你的幫助。這使得它的輸出正是我所需要的。我嘗試了非安全風險的SQL查詢利用,但我得到一個語法錯誤,當我把逗號:/ –