There are some issues with your code:
1) Are you sure you need the while loop at all? If there are multiple results (which is why one would use a loop) your code will simply keep on overwriting $prod_no until the last one. So if you have three (a, b, c) it will equal c. I'm assuming just one will exist so let's lose the loop.
2) Do you really want to use - in a variable name? Please don't, I don't even thing it would work (even if it does you shouldn't do that, it's crazy!) You may want to use a instead of - in variable names, so, $SESSION['prod_name'].
3) Your error is unrelated to the provided code. We don't see a variable named $eng_no, do you? I don't ;-) Regardless the error is of level E_NOTICE and since you aren't even using this mysterious $eng_no variable I don't see why that error would affect any of the code.
4) Did the query run? How about printing something like "Success!" if the query ran. Also consider mysql_affected_rows() and mysql_num_rows() for various checks.
5) A minor point (but a personal pet-peeve) is one shouldn't use mysql_fetch_array() unless one wants both numeric and associative array keys (no idea why someone would) so let's use mysql_fetch_assoc() instead.
Come up with another version and we'll see what we can do to further assist. The manual page for mysql_fetch_assoc() has a nice example.