ok, i've tested this and i think it works ok.
give it a go.
you can test the weekly changes by changing the date on line 4
oh, you may want to add the following in fromnt of the LIMIT clause on line 59
ORDER BY topTenListID
this will ensure that the recordset always returns the rows in ascending order