Реализация, возможно требует добавочной таблицы db_refs_list, где стоит учитывать дату действия. Поскольку период прихода рефских в стоке вроде как не считается. Можно конечно намастить вариант выбора из таблицы пополнений и оттуда дергать по date_add - ref_id'шники и делать счет сколько от суммы аплайнер получил и был ли он.
Потенциальная выборка что-то около:
$arr_period = array(1=>24,2=>24*7,3=>24*30);
for($q=1;$q<=3;$q++){
$dt = time() - 60*60*$arr_period[$q];
$db->Query("SELECT * FROM db_refs_list WHERE upliner = '$user_id' AND date_add > '$dt' ORDER BY id DESC");
if($db->NumRows()>0){
while($data=$db->FetchArray()){
$from_referer_sum[$q] =+$data["sum"];
}
}
}
echo "за 24 часа: ".$from_referer_sum[1];
echo "[br /]";
echo "за неделю: ".$from_referer_sum[2];
echo "[br /]";
echo "за месяц: ".$from_referer_sum[3];
Не претендую на истину в последней инстанции, просто потенциальные думы на этот счет.