从mysql数据库中的tkinter列表框中搜索项目列表

时间:2016-05-25 18:02:00

标签: python mysql tkinter ttk

我是一名编程初学者,我正在开发一个程序,根据您选择的症状诊断您的疾病并推荐某种药物。我创建了一个mysql数据库,其中包含一个名为' ailments'它存储了疾病的名称,原因,药物和症状(症状1,症状2 ......症状)。

CREATE TABLE ailments(
  -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  -> name VARCHAR(30) NOT NULL,
  -> cause VARCHAR(30) NOT NULL,
  -> medication VARCHAR(30) NOT NULL,
  -> symptom1 VARCHAR(30) NULL,
  -> symptom2 VARCHAR(30) NULL,
  -> symptom3 VARCHAR(30) NULL,
  -> symptom4 VARCHAR(30) NULL,
  -> symptom5 VARCHAR(30) NULL);

我还制作了两个tkinter列表框,一个包含各种症状,另一个包含用户通过“添加”#39;按钮。

我想要的是当用户按下诊断' GUI中的按钮,在查询“疾病”后,将根据用户选择的症状显示疾病的名称。表,它的原因和它的药物。问题是我不知道如何查询“疾病”。表使用用户在列表框中选择的症状。

查询应该关注症状列(症状1,症状2症状n)以及要显示的疾病的名称,原因和药物,而不是症状列中的每个症状(症状1,症状2)。 ....症状n)必须存在于用户将选择的症状中。让我们说它应该显示大部分所选症状与疾病的症状相符的疾病的名称,原因和用药#39;表

我在网上找不到任何帮助。

以下代码仅打印所选症状。我希望有人理解我。任何帮助都将受到重视,并且任何建议以更方便的方式构建我的程序(但仍然使用mysql和python)将被接受。

以下是代码:

from Tkinter import *
import ttk

root = Tk()
root.geometry('425x300')


def add_symptom():
    y = symptoms.get(ACTIVE)
    selected_symptoms.insert(END, y)


def remove_symptom():
    selected_symptoms.delete(ACTIVE)


def diagnosis_validation():
    if selected_symptoms.size() < 5:
        print('Insufficient symptoms for diagnosis')
    else:
        diagnose()


def diagnose():
    for a in selected_symptoms.get(0, END):
        print(a)

label1 = Label(root, text='Symptoms')
label1.place(x=5, y=5)

i = ['Fever', 'Headache', 'Vomiting', 'Weakness', 'Blood in urine', 'Joint pains', 'Stomachache',
 'Heavy sweating']

symptoms = Listbox(root)
symptoms.place(x=5, y=30,
           width=150, height=200)
for x in i:
    symptoms.insert(END, x)

scrollb1 = Scrollbar(root, command=symptoms.yview)
scrollb1.place(x=154, y=31, height=200)

symptoms.configure(yscrollcommand=scrollb1.set)

label2 = Label(root, text='Selected symptoms')
label2.place(x=255, y=5)

selected_symptoms = Listbox(root)
selected_symptoms.place(x=255, y=30, width=150, height=200)

scrollb2 = Scrollbar(root, command=selected_symptoms.yview)
scrollb2.place(x=404, y=31, height=200)

selected_symptoms.configure(yscrollcommand=scrollb2.set)

add_button = ttk.Button(root, text='Add',
                    command=add_symptom)
add_button.place(x=175, y=30)

remove_button = ttk.Button(root, text='Remove',
                       command=remove_symptom)
remove_button.place(x=175, y=70)

diagnose_button = ttk.Button(root, text='Diagnose',
                         command=diagnosis_validation)
diagnose_button.place(x=175, y=205)

root.mainloop()

0 个答案:

没有答案