True, yet without it the query doesn't work... unethical, yet it works.
The new statement you gave is almost the opposite as written in english....
lastupdate is less than start (should be NOT less than start - ie equal to or greater than) etc and the same for the rest.
I have got
WHERE (orighotelid='$hotel' AND date_taken!<'$start' AND date_taken!>'$end' AND lastupdate!>$end) OR (lastupdate!<$start AND lastupdate!>$end AND orighotelid='$hotel') ORDER BY ref DESC
to work though and it does exactly what I want. Messy maybe, but not bad all the same.
Should I be using <= instead ? (need to know to improve...)