> select cognome, nome, paese from rubrica where (cognome = '%s' OR nome = '%s' OR paese = '%s'
se usi OR significa che nei risultatiti aspetti o i record con la città di bologna oppure anche quelli che hanno un certo cognome. solitamente si usa AND, perchè se un utente scrive sia la città che il cognome vuole filtrare i risultati su entrambi. inoltre si usa solitamente il LIKE e il lower. detto questo, se vuoi interrogare il database con i soli campi inseriti devi scrivere la query in passi successivi. conditions = [] if cognome.get(): conditions.append(("LOWER(cognome) = %s", cognome.get())) if nome.get(): conditions.append(("LOWER(nome) = %s", nome.get())) if paese.get(): conditions.append(("LOWER(paese) = %s", paese.get())) if not conditions: conditions.append(("0=%s", 1)) sql = "select cognome, nome, paese from rubrica where %s" % " AND ".join([s for s, v in contitions]) c.execute(sql, ['%%s%' % v.lower() for s, v in contitions if v]) PS. non ti chiederò mai aiuto se avessi bisogno di un avvocato
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python