when you look at your data structure, the items listed below are all attributes of a property
dwelling style
location
etc
all refer to one property...therefore normalization tells us that tables are normalized (optimized with no repeating data) when we don't repeat anything...so use one table. you can store the attributes in differing tables to make DB store all the values and allow for growth when you add new dwelling styles or locations...
to make life easier, all you need to store in the proprtey table is the address and the ID's of each of the attributes (ie house = 1, farm = 2, condo = 3 etc) and other details like no. of bathrooms, no. of bedrooms etc etc etc
this has the added advantage of querying only one table to generate the results. the query should be built dynamically to account for all the possibilities...
$sql="select from properties where";
if (isset($POST['style'])){
$sql=." style=$POST['style']";
}
if (isset($POST['location'])){
$sql=." and location = $POST['location']";
}
if (isset($POST['bdrms'])){
$sql=." and bedrooms=$POST['bdroms']";
}
//check for no values (ie <option >All styles</option>)
if ((!$POST['style'])||(!$POST['location'])||(!$_POST['bdrms'])){
$sql="select from properties";
}
note: this will need to be refined somewhat to make the check for all possibilities of the query
hth