Combobox & mysql select 2 columns

0

Witam
Mam pytanie odnosnie Tkinter Combobox. Jak zdefiniowac aby wyniki zassane z SQL wyswietlał w Combobob. Dokładniej to pokazywal "kształt" a po wybraniu zwracał "id"??

# Module Imports
from unittest import result
import credentials
import tkinter as tk
from tkinter import ttk

# Creating tkinter window
window = tk.Tk()
window.title('Combobox')
window.geometry('500x250')

try:
    # Get Cursor
    handle = credentials.database_conn_mysql
    #cursor = handle.cursor()
    cursor = handle.cursor(dictionary=True)
    
    query = "SELECT `pep_ksztalt`.`id`, `pep_ksztalt`.`ksztalt` FROM `pepit`.`pep_ksztalt`" 
    
    cursor.execute(query)

    rows = cursor.fetchall()
    
    for row in rows:
        print(row)
        
    handle.close()

except credentials.database_conn_mysql.Error as err:
    print("Something went wrong: {}".format(err)) 

# Combobox creation
n = tk.StringVar()
ddl_ksztalt = ttk.Combobox(window, width = 27, textvariable = n)
ddl_ksztalt['values'] = rows
ddl_ksztalt.grid(column = 1, row = 5)
ddl_ksztalt.current(1)


label = ttk.Label(window, text='choice')
label.grid(column=0, row=0, padx=10, pady=10)

window.mainloop()
0

Wynik Twojego zapytania to: [(id, ksztalt), (id2, ksztalt2)] ... możesz to sobie zmapować na dict z kształtami jako klucze i id jako wartości, a do Comboboxa podawać dict.keys()
lub możesz pobierać same kształty wtedy rows możesz podpisać od razu pod comboboxa a id pobierać później gdy już wybierze się coś z listy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1