what i would do is this.
store the date the dues payment was made, (YYYY-MM-DD) in your database.
in order to negate the need to change the 'active year' you could use some php using the current date.
For example...
if the current month is December, your active year is 1st december of this year to 30 november of next year.
if the current month is not December, your active year is 1st december of last year to 30 november of this year.
you can do that with something like this...
<?php
$activestartdate = (date('m')<12?date('Y')+1:date('Y')).'-12-01';
$activeenddate = (date('m')<12?date('Y'):date('Y')+1).'-11-30';
?>
you can then use these variables in your sql statement using datediff() to determine whose dues were paid within the active year
using a simple table as an example, with fields memberid, membername and paydate, i constructed a page with a recordset to return only the members whose payment was made in the active year.
you can find out more about the mysql function datediff here...
func_datediff_mysql.asp