Yes i know, maybe i am wrong.
PHP Code:
while ($author = $DB_site->fetch_array($artbyauthorquery))
{
$author_cache[$author['author']][] = $author;
}
Would give something like the following (assuming some about the author table now):
$author_cache['jim'][0] = array('jim','doe','UK',3,......)
$author_cache['john'][0] = array('john','smith','germany',4,......)
now you ask for the entry "$author_cache['author']" unless there is an author named 'author', this would give no results.
Maybe i am looking complete wrong now, but just shoot me

i am wearing a bullet proof vest