OK, just to be sure...
If the field in your form is called q PHP would automatically instanciate a variable called $q but this will only work if register_globals is on.
It is best to make code portable and not rely on those PHP settings which may vary from one server to another.
You should assign the variable manually to be sure (if you are not doing so already):
If using
mySQL will look for the exact word. You said you are looking for similar words.
If you are looking for similar words (and not the exact string) you should use wildcard pattern matching:
Try something like:
PHP:
$query="select blah where field LIKE '%" . $q . "%'";
Since you are using % at the right only the field should *begin* with whatever $q is.