I will not answer directly to your question since there are plenty of responses with custom code and various modules that you can use in order to achieve the functionality that you want.
My answer will focus on the method that you chose to use. From what I've read, your approach can be summarized as follows:
1) You have x authors in your website
2) You created x number of blocks (one for each author)
3) You are trying to "associate" each block with nodes, based on the author of the node. So, for example, the first block will only appear if the author is "John Doe", the second block ... , the x-th block will only appear if the author is "Jane Doe".
(please correct me if I'm wrong and you are not using the methodology that I described above)
In my opinion, there are some facts about this specific approach that you should know:
- Conceptually, the custom blocks that you are creating share a lot of common "properties". For example, all blocks describe an author and present information about the specific author.
- You may have only 5 (or 2, or 3) authors right now, but in the future more authors may be added. How will you add the extra authors? You will have to create new custom blocks, copy and paste the PHP code and change the information in the block to match the new author (an old programming teacher of mine used to say: when you are copying and pasting large chunks of your code, there is something wrong with your code). Not to mention that your blocks administration page will become a nightmare to manage.
- Even if you are absolutely sure that you will not have to add more authors in the future, are you sure that you will not want to change the information in each block? For example, if you want to remove the "Occupation" field from the block and add an "IM" field, how will you do it? Go to every block, for every author and remove and add new fields.
- When you'll need to change anything related to the blocks, how sure can you be that you'll remember how the PHP code works in each block?
- What if you want to give someone else permission to change the author's information? Perhaps, the authors would like to add their own information (e.g. add their own bio). Will you give them access to a block with PHP code?
- My approach would be significantly different:
- New content type: Authors. You add fields that you want to display (like: picture, bio, email, website etc)
- Create a new node for each author. Add the corresponding information for each author (or even give access to other users to do it).
- Associate the "Author" field in your existing content type with the new content type ("Authors") using References if you are in Drupal 7 or Node Reference which is a part of the CCK if you are in Drupal 6.
- Create a block via Views to display the information from the new content type's nodes.
P.S: I intentionally did not include the details on how to setup Views or the References module for 2 reasons: (a) I do not know which version of Drupal you are using and (b) I understand that the chances of changing your whole approach are slim. However, if you decide to follow my method, let me know and I'll edit my post to add some more details.