Ah, see you are describing two different scenarios (or at least I perceive it that way).
My reply was just a general "rotation" based on the current day, assuming you had 7 posts (or a post number divisible by 7 like 14, 21, 49, 56, etc.). What you want sounds like a system to take the current week number (date('W')) and based on that to see which week should be displayed. Then using date('l') decide which specific row to show. Something like:
<?php
$weeks = array();
# Week Number
# Row 1 --> 1, 8, 15, 22, 29, 36, 43, 50
# Row 2 --> 2, 9, 16, 23, 30, 37, 44, 51
# Row 3 --> 3, 10, 17, 24, 31, 38, 45, 52
# Row 4 --> 4, 11, 18, 25, 32, 39, 46, 53
# Row 5 --> 5, 12, 19, 26, 33, 40, 47, 54
# Row 6 --> 6, 13, 20, 27, 34, 41, 48
# Row 7 --> 7, 14, 21, 28, 35, 42, 49
// Generate the $weeks array:
for($i=1, $n=1; $i<=54; $i++, $n++)
{
if($n==8)
{
$n=1;
}
$weeks[$i] = $n;
}
$week_num = date('W'); // 1 through 52
$week_day = date('N'); // Monday, Tuesday, Wednesday...
$week = $weeks[$week_num];
$sql = "SELECT *
FROM `table`
WHERE `colum` = '". mysql_real_escape_string($week_day.' '.$week)."'";
$result = mysql_query($query);
// ... etc ...
Hope that helps.