public function getMemberAdvertisements($memberID, $currentPage, $pagingAmount, $dbConnection)
 {
     $advertisementSearchResults = null;
     $advertisementSkeletons = null;
     try {
         //Construct Search Parameter object
         $advertisementSearchParameters = new SearchParameters();
         $advertisementSearchParameters->setVariable(SearchConstants::CURRENT_PAGE_ID, $currentPage);
         $advertisementSearchParameters->setVariable(SearchConstants::PAGING_AMOUNT_ID, $pagingAmount);
         $advertisementSearchParameters->setVariable(AdvertisementSearchConstants::MEMBER_INPUT_ID, $memberID);
         $advertisementCount = AdvertisementSearchDao::getSearchAdvertisementsCount($advertisementSearchParameters, $dbConnection);
         $advertisementSkeletons = AdvertisementSearchDao::searchAdvertisements($advertisementSearchParameters, $dbConnection);
         $advertisementSearchResults = new SearchResults();
         $advertisementSearchResults->setVariable(SearchResults::SEARCH_PARAMETERS, $advertisementSearchParameters);
         $advertisementSearchResults->setVariable(SearchResults::SKELETONS, $advertisementSkeletons);
         $advertisementSearchResults->setVariable(SearchResults::COUNT, $advertisementCount);
         $advertisementSearchResults->setVariable(SearchResults::PAGE_COUNT, ceil($advertisementCount / $pagingAmount));
     } catch (Exception $ex) {
         $advertisementSearchResults = null;
         echo 'Caught exception: ' . $ex->getMessage();
     }
     return $advertisementSearchResults;
 }
 public function searchAdvertisements($advertisementSearchParameters, $dbConnection = null)
 {
     $advertisementsList = null;
     $preparedStatement = null;
     try {
         $advertisementSearchQuery = null;
         $advertisementIDQuery = null;
         if ($dbConnection == null) {
             $dbConnection = DatabaseUtilities::getDatabaseConnection();
         }
         $advertisementIDQuery = "SELECT DISTINCT AD.ADVERTISEMENT_ID FROM advertisement AD WHERE 1 = 1";
         $advertisementIDQuery .= AdvertisementSearchDao::getAdvertisementSearchWhereClause($advertisementSearchParameters);
         $advertisementSearchQuery = AdvertisementSearchDao::ADVERTISEMENT_SEARCH_SELECT;
         $advertisementSearchQuery .= " AND AD.ADVERTISEMENT_ID IN (" . $advertisementIDQuery . ")\n\t\t\t\t\t\t\t\t\t\t\t\tORDER BY AD.CREATED_DATE DESC\n\t\t\t\t\t\t\t\t\t\t\t\tLIMIT :pagingAmount OFFSET :startingPoint";
         $preparedStatement = AdvertisementSearchDao::getAdvertisementSearchPreparedStatement($advertisementSearchQuery, $advertisementSearchParameters, $dbConnection);
         //Add paging parameters.
         $startingPoint = 0;
         $currentPage = $advertisementSearchParameters->getVariable(SearchConstants::CURRENT_PAGE_ID);
         $pagingAmount = $advertisementSearchParameters->getVariable(SearchConstants::PAGING_AMOUNT_ID);
         if ($currentPage > 1) {
             $startingPoint = ($currentPage - 1) * $pagingAmount;
         }
         $pagingAmount = (int) $pagingAmount;
         $startingPoint = (int) $startingPoint;
         $preparedStatement->bindParam(":pagingAmount", $pagingAmount, PDO::PARAM_INT);
         $preparedStatement->bindParam(":startingPoint", $startingPoint, PDO::PARAM_INT);
         $preparedStatement->execute();
         while ($result = $preparedStatement->fetch()) {
             $advertisement = AdvertisementSearchDao::extractAdvertisementSearchObject($result);
             if ($advertisement !== null) {
                 $advertisementsList[] = $advertisement;
             }
         }
         $preparedStatement = null;
     } catch (Exception $ex) {
         echo $ex->getMessage();
         $advertisementsList = null;
     }
     $preparedStatement = null;
     return $advertisementsList;
 }
 public function browseAdvertisementByLocation($country, $state, $city, $region, $searchType, $currentPage, $pagingAmount, $dbConnection = null)
 {
     $advertisementSearchResults = null;
     $advertisementSkeletons = null;
     $countryID = null;
     $stateID = null;
     $cityID = null;
     $regionID = null;
     try {
         //Construct Search Parameter object
         $advertisementSearchParameters = new SearchParameters();
         $advertisementSearchParameters->setVariable(SearchConstants::CURRENT_PAGE_ID, $currentPage);
         $advertisementSearchParameters->setVariable(SearchConstants::PAGING_AMOUNT_ID, $pagingAmount);
         //These elements are common to both search types
         $countryID = SearchUtilities::processSelectValues($country, 'defaultValue', '0');
         if ($countryID != null) {
             $stateID = SearchUtilities::processSelectValues($state, 'defaultValue', '0');
         }
         if ($stateID != null) {
             $cityID = SearchUtilities::processSelectValues($city, 'defaultValue', '0');
         }
         if ($cityID != null) {
             $regionID = SearchUtilities::processSelectValues($region, 'defaultValue', '0');
         }
         $advertisementSearchParameters->setVariable(LocationConstants::LOCATION_COUNTRY_INPUT_ID, $countryID);
         $advertisementSearchParameters->setVariable(LocationConstants::LOCATION_STATE_INPUT_ID, $stateID);
         $advertisementSearchParameters->setVariable(LocationConstants::LOCATION_CITY_INPUT_ID, $cityID);
         $advertisementSearchParameters->setVariable(LocationConstants::LOCATION_REGION_INPUT_ID, $regionID);
         $advertisementCount = AdvertisementSearchDao::getSearchAdvertisementsCount($advertisementSearchParameters, $dbConnection);
         $advertisementSkeletons = AdvertisementSearchDao::searchAdvertisements($advertisementSearchParameters, $dbConnection);
         $advertisementSearchResults = new SearchResults();
         $advertisementSearchResults->setVariable(SearchResults::SEARCH_PARAMETERS, $advertisementSearchParameters);
         $advertisementSearchResults->setVariable(SearchResults::SKELETONS, $advertisementSkeletons);
         $advertisementSearchResults->setVariable(SearchResults::COUNT, $advertisementCount);
         $advertisementSearchResults->setVariable(SearchResults::PAGE_COUNT, ceil($advertisementCount / $pagingAmount));
     } catch (Exception $e) {
         $advertisementSearchResults = null;
         echo 'Caught exception: ', $e->getMessage(), "\n";
     }
     return $advertisementSearchResults;
 }