<div dir="ltr"><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">> select cognome, nome, paese from rubrica where (cognome = '%s' OR nome = '%s' OR paese = '%s'</span><br></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">se usi OR significa che nei risultatiti aspetti o i record con la città di bologna oppure anche quelli che hanno un certo cognome.</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">solitamente si usa AND, perchè se un utente scrive sia la città che il cognome vuole filtrare i risultati su entrambi.</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">inoltre si usa solitamente il LIKE e il lower.</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">detto questo, se vuoi interrogare il database con i soli campi inseriti devi scrivere la query in passi successivi.</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">conditions = []</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">if </span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">cognome.get():</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">    conditions.append(("</span><span style="font-size:17.1428565979004px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);line-height:22.2560005187988px;background-color:transparent">LOWER(</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">cognome) = %s</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">", </span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">cognome.get())</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">)</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">if </span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">nome</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">.get():</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">    conditions.append(("</span><span style="font-size:17.1428565979004px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);line-height:22.2560005187988px;background-color:transparent">LOWER(</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">nome)</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"> = %s</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">", </span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">nome</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">.get())</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">)</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">if </span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">paese</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">.get():</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">    conditions.append(("</span><span style="font-size:17.1428565979004px;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;white-space:inherit;color:rgb(0,0,0);line-height:22.2560005187988px;background-color:transparent">LOWER(</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">paese)</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"> = %s</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">", </span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">paese</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">.get())</span><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">)</span></div></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">if not conditions:</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">    conditions.append(("0=%s", 1))</span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px"><br></span></div><div class="gmail_extra"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">sql = "select cognome, nome, paese from rubrica where %s" % " AND ".join([s for s, v in contitions])</span></div><div class="gmail_extra"><font color="#000000" face="arial, sans-serif"><span style="font-size:16px">c.execute(sql, </span></font><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:16px">['%%s%' % v.lower() for s, v in contitions if v]</span><span style="font-size:16px;color:rgb(0,0,0);font-family:arial,sans-serif">)</span></div><div class="gmail_extra"><span style="font-size:16px;color:rgb(0,0,0);font-family:arial,sans-serif"><br></span></div><div class="gmail_extra">PS.</div><div class="gmail_extra">non ti chiederò mai aiuto se avessi bisogno di un avvocato</div></div>