подталкнуло но все же не могу
как я начеркал ) (не судите ещё нуб )
$date = date("d.m.Y");
$temp = explode('.',$date);
$var = array();
$temp['0']= $temp['0'];
$var= $temp['0'].'.'.$temp['1'].'.'.$temp['2'];
$temp2 = explode('.',$date);
$var2 = array();
$temp2['0']= $temp2['0'] +2;
$var2= $temp2['0'].'.'.$temp2['1'].'.'.$temp2['2'];
$temp3 = explode('.',$date);
$var3 = array();
$temp3['0']= $temp3['0'] +4;
$var3= $temp3['0'].'.'.$temp3['1'].'.'.$temp3['2'];
$res = mysql_query("SELECT * FROM top where date >= '{$var}' AND date <= '{$var3}' ORDER BY date DESC") or die(mysql_error());
но все же выводит не так как нужно, такое чуство что сравнивает только первое число т.е
09.01.2013