I'm not a big fan of storing images in databases. You're chewing up database resources to store a somewhat large collection of data that you have no intention of manipulating (such as searching, adding, indexing, ordering, etc). Wouldn't it make sense to just store the image name? Then have PHP just point directly to the file, or if you want to keep it secure, place the images in a non-web accessible directory and have PHP read the file back to the user (which is what you would be doing anyways if you had stored the image in the database).
As for sending the image back, its a matter of getting the data (either from the DB which I don't recommend or from a file which I recommend). Once you have the data, you send the proper content-type header back to the browser (usually image/jpeg or image/gif, etc). Then send the image data. And then you're done with sending the image.
As for step 2, you'll just need to create a query to get the info out of the database. It could be as simple as:
SELECT imagegoodies, usergoodies, paths, etc FROM mytable WHERE username = '[username given]'
Of course, swapping the silly field names, table name, and where clause with your database info.