201 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?PHP
 | 
						|
 | 
						|
/** TO DO **
 | 
						|
 | 
						|
- Allow users to search by start time
 | 
						|
- Allow users to search by entry fee
 | 
						|
 | 
						|
************/
 | 
						|
 | 
						|
include("config.php");
 | 
						|
require_once("rating/classes/include.all.php");
 | 
						|
 | 
						|
if (!$_POST){ header('Location: '.$site_url); }
 | 
						|
 | 
						|
// build the SQL query
 | 
						|
$sql = "SELECT coach_id, coach_name, coach_address, coach_address_two, coach_city, coach_state, coach_zip, coach_phone, coach_fax, coach_email, coach_website FROM ".$prefix."Coaches WHERE coach_valid=1 ";
 | 
						|
 | 
						|
// add coaches
 | 
						|
 | 
						|
if (isset($_POST[certifications])) {
 | 
						|
  if (in_array("999", $_POST[certifications])) {
 | 
						|
  		$sql = $sql." AND coach_certifications <> ',0,'";
 | 
						|
  } else {
 | 
						|
	  foreach ($_POST[certifications] AS $value) {
 | 
						|
		$sql = $sql." AND coach_certifications LIKE '%,$value,%'";  
 | 
						|
	  }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
if (isset($_POST[services])) {
 | 
						|
  if (in_array("999", $_POST[services])) {
 | 
						|
  		$sql = $sql." AND coach_services <> ',0,'";
 | 
						|
  } else {
 | 
						|
	  foreach ($_POST[services] AS $value) {
 | 
						|
		$sql = $sql." AND coach_services LIKE '%,$value,%'";  
 | 
						|
	  }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
if (isset($_POST[degree])) {
 | 
						|
  if (in_array("999", $_POST[degree])) {
 | 
						|
  		$sql = $sql." AND coach_degrees <> ',0,'";
 | 
						|
  } else {
 | 
						|
	  foreach ($_POST[degree] AS $value) {
 | 
						|
		$sql = $sql." AND coach_degrees LIKE '%,$value,%'";  
 | 
						|
	  }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// regions are checkboxes that then check off all states within that region
 | 
						|
// add states
 | 
						|
if (isset($_POST[states])) {
 | 
						|
  $glue = "','";
 | 
						|
  $statelist = "('".implode($glue, $_POST[states])."')";
 | 
						|
  $sql = $sql." AND coach_state_tag IN $statelist";
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
$sql = $sql." ORDER BY coach_name ASC";
 | 
						|
 | 
						|
//echo $sql;
 | 
						|
 | 
						|
$results = mysql_query($sql) OR die(mysql_error());
 | 
						|
 | 
						|
$none = FALSE;
 | 
						|
if (mysql_num_rows($results) == 0) {
 | 
						|
  $none = TRUE;
 | 
						|
}
 | 
						|
$coach_count = mysql_num_rows($results);
 | 
						|
 | 
						|
//keyword search
 | 
						|
// trim redundant keywords: triathlon, duathlon
 | 
						|
$trim_words = array(" the ", " a ", " an ", "and ", " half ", "triathlon", "duathlon");
 | 
						|
foreach ($trim_words AS $word) {
 | 
						|
	$_POST['keyword'] = str_ireplace($word, " ", $_POST['keyword']);
 | 
						|
}
 | 
						|
$bool_Keywords = false;
 | 
						|
if (isset($_POST['keyword']) && $_POST['keyword'] != "") {
 | 
						|
	$bool_Keywords = true;
 | 
						|
	while($row_coaches = mysql_fetch_array($results)) {
 | 
						|
		// build an array that we can loop through.
 | 
						|
		$arr_coaches[$i] = $row_coaches;
 | 
						|
		$i++;
 | 
						|
	}
 | 
						|
	
 | 
						|
	$arr_Matches = array();
 | 
						|
	foreach ($arr_coaches AS $coach) {	
 | 
						|
			if (stripos($coach['coach_name'], $_POST['keyword']) !== false) {
 | 
						|
				// push this onto the array of matches
 | 
						|
				$coach['percent'] = 100;
 | 
						|
				array_push($arr_Matches, $coach);
 | 
						|
			} else {
 | 
						|
				$name_nospace = str_replace(" ", "", $coach['coach_name']);
 | 
						|
				$keyword_nospace = str_replace(" ", "", $_POST['keyword']);
 | 
						|
				if (stripos($name_nospace, $keyword_nospace) !== false) {
 | 
						|
					// push this onto the array of matches
 | 
						|
					$coach['percent'] = 90;
 | 
						|
					array_push($arr_Matches, $coach);
 | 
						|
				} else {
 | 
						|
					// trim redundant keywords
 | 
						|
					$coach_name = $coach['coach_name'];
 | 
						|
					foreach ($trim_words AS $word) {
 | 
						|
						$coach_name = str_ireplace($word, " ", $coach_name);
 | 
						|
					}
 | 
						|
					//$coach_name = str_ireplace(" ", "", $coach_name);
 | 
						|
					$coach_name = strtolower($coach_name);
 | 
						|
					$arr_coach_name = explode(" ", $coach_name);
 | 
						|
					$_POST['keyword'] = strtolower($_POST['keyword']);
 | 
						|
					$_POST['keyword'] = str_replace(" ", "", $_POST['keyword']);
 | 
						|
					foreach ($arr_coach_name AS $test_word) {					
 | 
						|
						similar_text($test_word, $_POST['keyword'], $percent);
 | 
						|
						if ($percent >= 70) {
 | 
						|
							// push this onto the array of matches
 | 
						|
							$coach['percent'] = round($percent, 0);
 | 
						|
							//$coach['trimmed'] = $coach_name;
 | 
						|
							array_push($arr_Matches, $coach);
 | 
						|
							break;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
	}
 | 
						|
	
 | 
						|
	if (count($arr_Matches) == 0) {
 | 
						|
 		$none = TRUE;
 | 
						|
 	}
 | 
						|
 	$coach_count = count($arr_Matches);
 | 
						|
 	
 | 
						|
 	//sort the array by keyword match success instead of by date
 | 
						|
 	function cmp($a, $b)
 | 
						|
	{
 | 
						|
		if ($a['percent'] == $b['percent']) {
 | 
						|
			return 0;
 | 
						|
		}
 | 
						|
		return ($a['percent'] > $b['percent']) ? -1 : 1;
 | 
						|
	}
 | 
						|
	
 | 
						|
	usort($arr_Matches, "cmp");
 | 
						|
}
 | 
						|
//end keyword search
 | 
						|
 | 
						|
// set the page title
 | 
						|
$pagetitle = "Search Results";
 | 
						|
 | 
						|
// set meta tags
 | 
						|
$meta_keywords = "search, coaches, triathlon, results";
 | 
						|
$meta_description = "Triathlon coaches matching a user's search query. A list of matching coaches.";
 | 
						|
?>
 | 
						|
 | 
						|
<? include("include_common_head.php"); ?>
 | 
						|
 | 
						|
<body class="listings">
 | 
						|
  <? include($common_path . "/ads/ad_wallpaper.html"); ?>
 | 
						|
 | 
						|
  <div class="container">
 | 
						|
    <? include($common_path . "/templates/include_header.php"); ?>
 | 
						|
    <div class="main">
 | 
						|
      <div class="contentwrapper clearfix">
 | 
						|
        <? include("include_breadcrumb.php"); ?>
 | 
						|
 | 
						|
        <section class="section listings section-has-widgets section-static remove-sidebar">
 | 
						|
          <div class="sidebar-b">
 | 
						|
            <? include("include_sidebar.php"); ?>
 | 
						|
          </div>
 | 
						|
 | 
						|
          <div class="content content-has-widgets">
 | 
						|
            <div class="grid">
 | 
						|
 | 
						|
              <div class="clearfix">
 | 
						|
                    <h1>Search Results</h1>
 | 
						|
                    <p><b><? echo $coach_count; ?></b> Coaches Match Your Search</p>
 | 
						|
                    
 | 
						|
                    <table border="0" cellspacing="0" cellpadding="1" width="580">
 | 
						|
                    <? 
 | 
						|
                    $x = 0;
 | 
						|
                    if ($bool_Keywords == true) {
 | 
						|
                        foreach ($arr_Matches AS $row) {
 | 
						|
                            include("include_store.php");
 | 
						|
                        } //end foreach
 | 
						|
                    } else { //else bool_keyword
 | 
						|
                        while ($row = mysql_fetch_array($results)) {
 | 
						|
                            include("include_store.php");
 | 
						|
                        } //end while ?>
 | 
						|
                    <? } // end if/else ?>
 | 
						|
                    </table>
 | 
						|
 | 
						|
              </div><!-- end col-2/3 -->
 | 
						|
 | 
						|
            </div><!-- end grid -->
 | 
						|
          </div><!-- end content -->
 | 
						|
        </section>
 | 
						|
 | 
						|
      </div><!-- end contentwrapper -->
 | 
						|
    </div> <!-- end main -->
 | 
						|
 | 
						|
  <? include($common_path . "/templates/include_footer.php") ?>
 | 
						|
  </div> <!-- container  -->
 | 
						|
</body>
 | 
						|
<? include($common_path . "/templates/include_global_js.php") ?>
 | 
						|
</html>
 |