todo se resume en parentesis... al dejar varias condiciones así no sabes que se compara primero...
Cita: ; esto es lo correcto
WHERE foo = 'bar' AND (candy=1 OR candy=1)
; y estos son los que tu tienes, pues asi se comparan igual
WHERE (foo = 'bar' AND candy=1) OR candy=1
WHERE foo = 'bar' AND candy=1 OR candy=1
y me pregunto... esto que tiene que ver con PHP???