A certainl part of an if() structure never gets executed.

MRAB python at mrabarnett.plus.com
Tue Jun 11 18:43:21 EDT 2013


On 11/06/2013 21:20, Νικόλαος Κούρας wrote:
> [code]
> 		if not re.search( '=', name ) and not re.search( '=', month ) and not re.search( '=', year ):
> 			cur.execute( '''SELECT * FROM works WHERE clientsID = (SELECT id FROM clients WHERE name = %s) and MONTH(lastvisit) = %s and YEAR(lastvisit) = %s ORDER BY lastvisit ASC''', (name, month, year) )
> 		elif not re.search( '=', month ) and not re.search( '=', year ):
> 			cur.execute( '''SELECT * FROM works WHERE MONTH(lastvisit) = %s and YEAR(lastvisit) = %s ORDER BY lastvisit ASC''', (month, year) )
> 		elif not re.search( '=', year ):
> 			cur.execute( '''SELECT * FROM works WHERE YEAR(lastvisit) = %s ORDER BY lastvisit ASC''', year )
> 		else:
> 			print('''<h2>Πώς να γίνει αναζήτηση αφού δεν επέλεξες ούτε πελάτη ούτε μήνα ή τουλάχιστον το έτος?''')
> 			print( '''<meta http-equiv="REFRESH" content="5;/cgi-bin/pelatologio.py">''' )
> 			sys.exit(0)
>
> 		data = cur.fetchall()
> 		
> 		hits = money = 0
> 		
> 		for row in data:
> 			hits += 1
> 			money = money + row[2]
>
> ......
> ......
> selects based on either name, month, year or all of them
> [/code]
>
>
> The above if structure works correctly *only* if the user sumbits by form:
>
> name, month, year
> or
> month, year
>
> If, he just enter a year in the form and sumbit then, i get no error, but no results displayed back.
>
> Any ideas as to why this might happen?
>
What are the values of 'name', 'month' and 'year' in each of the cases?
Printing out ascii(name), ascii(month) and ascii(year), will be helpful.

Then try stepping through those lines in your head.



More information about the Python-list mailing list