Thanks for the feedback! Here's what I've currently got up and running, and it seems to run quite well. The only downside is that the FIRST person to view this page at the beginning of the week (Monday 12:01 AM) will have a few extra queries (6 total) in their page load, but other than that, it only adds one query on a regular basis.
PHP Code:
// Member of the week
$currentweek = date(W);
$displayMOTW = $DB_site->query_first("SELECT memberphoto.userid AS id,memberphoto.comments,memberphoto.body,memberphoto.highlights,
user.username,user.photonum,user.phototype
FROM memberphoto
LEFT JOIN user ON (user.userid=memberphoto.userid)
WHERE memberphoto.visible=1 AND memberphoto.displayweek='$currentweek' AND displayed=-1");
// Check to see if there is an existing valid MOTW to be displayed
if ($displayMOTW) {
$motwid = $displayMOTW['id'];
$motwbody = $displayMOTW['body'];
$motwmods = $displayMOTW['highlights'];
$motwusername = $displayMOTW['username'];
$motwphoto = "<img border=\"0\" alt=\"$motwusername's $displayMOTW[comments]\" src=\"memberpics/photo$displayMOTW[id]_$displayMOTW[photonum].$displayMOTW[phototype]\">";
eval("\$motw = \"".gettemplate('home_motw')."\";");
} else {
//setting all expired MOTW to displayed status
$DB_site->query_first("UPDATE memberphoto SET displayed=1 WHERE displayed=-1 AND displayweek<>$currentweek");
//count the number of remaining candidates to select from
$candidates=$DB_site->query("SELECT COUNT(*) AS count FROM memberphoto WHERE visible=1 AND displayed=0");
//check to make sure there are candidates available, if not, reset everyone
if ($candidates[count] == 0) {
$DB_site->query("UPDATE memberphoto SET displayed=0");
}
//Pick new MOTW
$newMOTW = $DB_site->query_first("SELECT memberphoto.userid AS id,memberphoto.comments,memberphoto.body,memberphoto.highlights,
user.username,user.photonum,user.phototype
FROM memberphoto
LEFT JOIN user ON (user.userid=memberphoto.userid)
WHERE memberphoto.visible=1 AND displayed=0 ORDER BY RAND() LIMIT 1");
$motwid = $newMOTW['id'];
$motwbody = $newMOTW['body'];
$motwmods = $newMOTW['highlights'];
$motwusername = $newMOTW['username'];
$motwphoto = "<img border=\"0\" alt=\"$motwusername's $newMOTW[comments]\" src=\"memberpics/photo$newMOTW[id]_$newMOTW[photonum].$newMOTW[phototype]\">";
$DB_site->query_first("UPDATE memberphoto SET displayed=-1, displayweek='$currentweek' WHERE userid='$motwid'");
//Display the Member of the week
eval("\$motw = \"".gettemplate('home_motw')."\";");
}