Ну раз все данные в БД, то пусть этим занимается sql сервер.
Сделайте UPDATE по определенным условиям, а sql сервер все сделает.
$db->query("UPDATE users SET happiness = happiness + 1 WHERE happiness >= 10 AND happiness < 15");
$db->query("UPDATE users SET happiness = happiness + 3 WHERE happiness >= 0 AND happiness < 5");
Ну это так, совсем по простому.
Еще можете сделать процедуру в базе данных, которая все будет делать. И лишь вызывать ее из скрипта.