title: PHP, MySQL: Making a better search?
body: <p>I've made a search box feature that allows me to type in a word and then it finds any matches of the word in my database.  However, it only finds EXACT matches.  I'm looking for suggestions on how to make the search better.</p>
  
  <p>The code below is what i currently use for searching the databases for users that might be matches for the user searching.</p>
  
  <pre><code>    $search_keys = array('fname', 'lname', 'email' );
  
      foreach ( $search_keys as $key )
      {
          $result = mysql_query( "SELECT id FROM users WHERE " . $key . " LIKE " . "\"{$str}\"" ) or die(mysql_error());
  
          while ( $row = mysql_fetch_array( $result ) )
          {
  
              // Get the User
              $tmp_user = new User();
              $tmp_user-&gt;getUserById( $row['id'] );
  
              // Add User to list of potential candidates
              array_push($users, $tmp_user);
          }
      }
  </code></pre>