Salve a tutti,

spero che qualcuno possa aiutarmi.

Ho una tabella mysql con tre campi: nome, cognome e paese.
Il mio desiderio sarebbe quello di effettuare una ricerca in quella tabella attraverso una maschera con tre caselle, una per ogni campo, in cui inserire il valore da cercare, ed un unico tasto "cerca" con il comando di ricerca. Vorrei, insomma, che il database mysql mi restituisse i record conformi alle caselle riempite dall'utente (ad es., "Paolo" di "Modena"), senza però darmi tutti i Paolo che non sono di Modena né tutti quelli di Modena che non si chiamano Paolo, ma soprattutto che non consideri le caselle vuote (ad es., il cognome di Paolo non sarebbe un campo vuoto nella tabella ma semplicemente un campo irrilevante ai fini della ricerca, perché altrimenti se Paolo ha invece un cognome quel record verrebbe escluso dalla ricerca solo perché la casella è "None"). Il problema è che non riesco a cd escludere dalla ricerca le caselle lasciate eventualmente vuote.

Mi sono sicuramente spiegato male, scusate.

Il codice che avevo abbozzato è il seguente:
<<
    # nome:
nome_etichetta=Label(cerca_window, text="nome:").grid(row=100, column=10)
    # chiede di inserire il valore da cercare nel db
    nome= StringVar(cerca_window)
nome_casella=Entry(cerca_window, textvariable=nome).grid(row=100, column=20)
    nome.get()
    # cognome:
cognome_etichetta=Label(cerca_window, text="cognome:").grid(row=110, column=10)
    # chiede di inserire il valore da cercare nel db
    nome= StringVar(cerca_window)
nome_casella=Entry(cerca_window, textvariable=cognome).grid(row=110, column=20)
    cognome.get()
    # paese:
paese_etichetta=Label(cerca_window, text="paese:").grid(row=120, column=10)
    # chiede di inserire il valore da cercare nel db
    paese= StringVar(cerca_window)
paese_casella=Entry(cerca_window, textvariable=paese).grid(row=120, column=20)
    paese.get()

    def cerca_def():
cliens = "select cognome, nome, paese from rubrica where (cognome = '%s' OR nome = '%s' OR paese = '%s')" % (cognome.get(), nome.get(), paese.get())
        cursore.execute(cliens)
        risultato = cursore.fetchall()
        print (risultato)

        if risultato != "":
            risultato1=str(risultato)
            risultato2=risultato1.strip("[()',)]")
            risultato_ricerca_window = Tk()
            risultato_ricerca_window.title("Risultato della ricerca")
risultato_button = Button(risultato_ricerca_window, text=risultato2).pack(side=TOP)


OK2 = Button(cerca_window, text="Cerca", command = cerca_def).grid(row=120, column=10)


Riuscite a darmi una mano?
Grazie mille per l'attenzione (e il tempo) che vorrete dedicare a questa mia email.

Juri
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a