2017-12-27 1 views
-1

Die Abfrage scheint zu funktionieren, aber der "ausgewählte Eintrag" wird in eine Zeichenfolge aus Zahlen, die meine Abfrage durcheinander bringt. So erhalten Sie Eingabewert, um keine Zeichenfolgevariable für Mysql zu sein Abfrage = Tkinter

def find_roster(n=""): 
global cursor 
cursor.execute("""SELECT num, firstname, surname, assign FROM active WHERE num='%s'"""%(n)) 
rows = cursor.fetchall() 
for results in rows: 
    rosterList.insert("end", results) 
cursor.close() 
print(n) 
print(rows) 
return rows 

numLabel=Label(root, text="Employee #") 
numLabel.grid(row=0,column=0) 

findButt=Button(root, text="Find", width=12, command=find_roster) 
findButt.grid(row=1, column=5) 


num_input=StringVar() 
num_input=Entry(root,textvariable=num_input) 
num_input.grid(row=0,column=1) 

----- 


findButt=Button(root, text="Find", width=12, command=lambda: find_roster(num_input)) 
findButt.grid(row=1, column=5) 

KONSOLE PRINT RESULT

.140526443864584 

() #QUERY RESULT

BRAUCHT

WERDEN
1-214 

(1-214, JOE,HOEY,OFF) #QUERY RESULT 
+1

Verwendung Taste '{}' korrekt formatiert Code – furas

+0

Bitte geben Sie [a Minimal, Complete, und prüfbare Beispiel] (https: // Stackoverflow .com/hilfe/mcve). – Nae

Antwort

1

Beachten Sie, dass:

num_input=StringVar() 
num_input=Entry(root,textvariable=num_input) 

, die sehr viel ist das gleiche wie:

a = 3 
a = -4 

aber weitere hinzufügen:

a = 3 
a = -4 
print(a) 

Was denken Sie, ist dieser Druck wird?


ersetzen:

num_input=StringVar() 
num_input=Entry(root,textvariable=num_input) 

mit:

anything_but = StringVar() 
num_input = Entry(root, textvariable=anything_but) 

wie Sie später ein ganzes Entry Widget als num_input zuweisen es wird so überschrieben. Auch sein Inhalt als String bekommen Sie get Methode verwenden:

findButt=Button(root, text="Find", width=12, 
        command=lambda arg=anything_but.get(): find_roster(arg)) 
+0

Sorry Nae, aber ich bin hier wirklich verwirrt - wenn ich in 'anything_but =' die textvariablen Fehler ändere, wie es num_input ist. – Raymond

+0

@Raymond müssen Sie das auch ändern. Ich werde die Antwort aktualisieren. – Nae

+0

Ok so jetzt gibt es keine Fehler, aber ich bekomme eine leere Abfrage und() Ergebnis – Raymond

Verwandte Themen