Primero montaría la consulta base y luego concatenaría cada uno de los filtros del WHERE. Si no tienes nunguna condición fija (en tu caso creo que tienes el estado <> '0') entonces puedes usar un WHERE 1. Esto lo digo porque luego para concatenar los filtros es cómodo empezarlos siempre con AND. Para saber si tienes valores o no del formulario, utiliza isset(). Si evalúa a cierto entonces concatenas el filtro, Si no, no concatenas nada.
Por ejemplo, suponiendo que sólo tienes el filtro zona, sería algo como esto:
Código PHP:
$SQL = "select * from propiedades where estado <> 0";
if (isset($zonas))
$SQL .= " AND zona='$Zona';
// Y así con los demás...
$busqueda=mysql_query($SQL);