[Python] Esclusione della query vuota

Juri Rudi rudijuri a gmail.com
Mer 10 Set 2014 22:08:20 CEST


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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140910/6ed9cca0/attachment.html>


Maggiori informazioni sulla lista Python