Miért nem tudok sql táblából adatokat lekérni pythonban Tkinteren keresztül
2022-09-13T21:10:58+02:00
2022-09-15T21:50:40+02:00
2022-09-19T07:50:22+02:00
Bercußß
pythone Tkinteren keresztül szeretnék egy lekérdezést csinálni, de a kimenet valamiért mindig ez: "[ ]". Az sql tábla nagyon egyszerű, egyik oszlopban a név a másikban a hozzá tartózó pont van. Ha nem adom meg hogy kinek a pontjára vagyok kíváncsi probléma nélkül működik minden. Miért van ez? Remélem nagyjából érthető voltam. Előre is köszi a segítséget
import tkinter as tk import mysql.connector import pyodbc import pathlib import mysql.connector mydb = mysql.connector.connect( host="XXXXXXX", user="XXXXXXX", password="XXXXXXX", database="XXXXXXX" ) print(mydb) mycursor = mydb.cursor() frame = tk.Tk() frame.title("TextBox Input") frame.geometry('400x200') def printInput(): lbl.config(text = "output: "+str(myresult)) printButton = tk.Button(frame, text = "Print", command = printInput) inputtxt = tk.Text(frame, height = 5, width = 20) printButton.pack() name = inputtxt.get mycursor. execute ("SELECT points FROM eva_test_1 WHERE name = '%s'" %name) #mycursor. execute ("SELECT points FROM eva_test_1") inputtxt.pack() lbl = tk.Label(frame, text = "") lbl.pack() myresult = mycursor. fetchall() print(myresult) frame.mainloop()
Mutasd a teljes hozzászólást!

  • Ugyan jobb lett volna, ha a forráskód gombot (</> a szerkesztőmező felett) használod, de azért tippem így is van:

    name = inputtxt.get mycursor. execute ("SELECT points FROM eva_test_1 WHERE name = '%s'" %name)
    Az inputtxt.get az egy függvény lesz. A függvényt ha sztringgé próbálod alakítani akkor lesz belőle ugyan valami, de nem az a valami, amit a meghívása esetén adna visszatérési értéknek. Szóval hívd is meg:

    name = inputtxt.get() mycursor. execute ("SELECT points FROM eva_test_1 WHERE name = '%s'" %name)
    Szerk: ja és még most kezdj el ismerkedni a prepared statementtel, mielőtt hozzászoksz ehhez a mintához. Az "sql injection" kifejezésre keress rá, hogy megértsd, miért.
    Mutasd a teljes hozzászólást!
  • Köszi hogy segítesz. Úgy érted hogy csak a zárójelek maradtak le?
    Mutasd a teljes hozzászólást!
  • "Csak". Egy kicsit erőlködj, hogy megértsd, miért vannak azok a zárójelek. Bár olyan nagyon erőlködnöd nem kell, mert részletes választ kaptál.

    Mellesleg, ahogy látom, szoknod kell még, hogy ne csempéssz össze-vissza space-eket a kódodba:

    mycursor.[SPACE]execute...
    Kicsit olyan érzésem, hogy sokat copy-paste-eltél, és nem is sejted, mit hoztál össze. Remélem, tévedek.
    Mutasd a teljes hozzászólást!
  • Utólag nem igazán értem hogy tudtam ilyet elrontani.. de köszönöm a segítséget
    Mutasd a teljes hozzászólást!
  • Ha elismered a hibádat, az komoly erény manapság. Remélem, lassan magadra szeded a szükséges alapokat.
    Mutasd a teljes hozzászólást!
abcd