gotornot, you are going to have to make a bit of an effort to understand what is happening in order to solve this one.
Looking at your original search query:
$q = "SELECT * FROM products WHERE prod_name LIKE '%$id%' order by fee asc LIMIT 20";
This query instructs your dbms to fetch you all records where prod name has any number of characters (or no characters) followed by whatever string is in $id followed by any number of characters (or no characters). The key concept here is that the % in your query acts as a wildcard meaning that it matches any character (or no characters).
Your query doesn't do what you want because the results have to match whatever is in $id exactly -- which would include any spaces it contains. If you want the query to allow other words between the words you type in your search, you would need to take the spaces in $id and replace them with wildcard characters (% signs).
The full-text search that bradgrafelman referred you to is some pretty awesome technology. It's enormously powerful and, were you to make the effort, you would be handsomely rewarded in your ability to search a database.
Another alternative is to set up google custom search to search your site. Google has gone through all the trouble of creating a brilliant search engine and you can use it to index your site if you're willing to display your search results with google ads or pay some money to make the ads go away.