rendered paste bodyfunction search($search_terms, $page) // $search_terms is a serialized id of search terms stored in the session
{
$search_terms = $_SESSION[$search_terms];
$data = array();
if (isset($search_terms['featured']))
$this->db->select('SQL_CALC_FOUND_ROWS *')->from('mls_listings, custom_listings');
else
$this->db->select('SQL_CALC_FOUND_ROWS *')->from('mls_listings');
/* Determine what search terms to use based on the user input */
if (isset($search_terms['listing_agent_code']))
$this->db->where('listing_agent_code', $search_terms['listing_agent_code']);
if (isset($search_terms['listing_office_name']))
$this->db->where('listing_office_name', $search_terms['listing_office_name']);
if (isset($search_terms['city']))
$this->db->like('city', $search_terms['city']);
if (isset($search_terms['county']))
$this->db->like('county_name', $search_terms['county']);
if (isset($search_terms['zip']))
$this->db->like('zip_code', $search_terms['zip']);
if (isset($search_terms['street_number']))
$this->db->like('street_number', $search_terms['street_number']);
if (isset($search_terms['street_name']))
$this->db->like('street_name', $search_terms['street_name']);
if (isset($search_terms['mls_number']))
$this->db->like('mls_number', $search_terms['mls_number']);
if (isset($search_terms['subdivision_name']))
$this->db->like('subdivision_name', $search_terms['subdivision_name']);
if (isset($search_terms['condominium_name']))
$this->db->like('condominium_name', $search_terms['condominium_name']);
if (isset($search_terms['property_type']) && $search_terms['property_type'] != "Any")
$this->db->where('property_category', $search_terms['property_type']);
if (isset($search_terms['featured']))
$this->db->where('mls_listings.mls_number = custom_listings.mls_num')->where('custom_listings.featured', true);
$low_price = (!isset($search_terms['low_price'])) ? 0 : $search_terms['low_price'];
$high_price = (!isset($search_terms['high_price'])) ? 1000000000 : $search_terms['high_price'];
$this->db->where('list_price >=', $low_price);
$this->db->where('list_price <=', $high_price);
if (isset($search_terms['bedrooms']))
$this->db->where('number_of_bedrooms >=', $search_terms['bedrooms']);
if (isset($search_terms['bathrooms']))
$this->db->where('number_of_full_baths >=', $search_terms['bathrooms']);
if (isset($search_terms['square_feet']))
$this->db->where('building_square_feet >=', $search_terms['square_feet']);
// Declare the return arrays...
$data['houses'] = array();
$data['images'] = array();
$this->db->limit(10, $page);
$this->db->orderby('list_price');
$query = $this->db->get();
$found_rows = $this->db->query('SELECT FOUND_ROWS()');
foreach($found_rows->result_array() as $row)
$data['found_rows'] = $row['FOUND_ROWS()'];
$this->db->from('mls_photos');
$data['houses']['white'] = array();
$data['houses']['other'] = array();
foreach ($query->result() as $house)
{
if ($house->listing_office_name == "Century 21 White Real Estate")
$data['houses']['white'][] = $house;
else
$data['houses']['other'][] = $house;
$this->db->orlike('mls_number', $house->mls_number); // Add this mls number to the photo SQL search below
if (file_exists('images/mls_listings/' . $house->mls_number . '.jpg'))
$data['images'][$house->mls_number][] = array('link' => '/images/mls_listings/' . $house->mls_number . '.jpg', 'caption' => 'Primary Photo');
}
$this->db->orderby('picture_order');
$query2 = $this->db->get();
foreach ($query2->result() as $photo)
$data['images'][$photo->mls_number][] = $photo;
$temp = array();
foreach ($data['houses']['white'] as $house)
$temp[] = $house;
foreach ($data['houses']['other'] as $house)
$temp[] = $house;
$data['houses'] = array();
$data['houses'] = $temp;
return $data;
}