[eluser]Chris Newton[/eluser]
I'd tend to do a 'join' when pulling the userdata the first time. I try not to create too many specific individual database calls in the model, but I'd prefer to do something like this in the controller
$user_array=$this->my_model->get_users_and_top_three_favorites($user_id);
And make that method in the model pull the top three & the user data at the same time. OR, I'd do a call to the model in the controller and then during a foreach, make an additional call to the model for the faves.
I wouldn't do this in the view, ever, because there's no point in building a view if you're also going to make it
do work. Just echo everything out from the contoller. I think it's appropriate to directly call the model from the view if you're simply pulling data without acting on it. When you're "viewing" it. I don't do that myself though, I'd rather assemble the necessary data in the controller and then simply display it in the view.
After having done this a while, I've started to really try to refine my approach so that I really can reuse controllers & views. It's a learning process, but my code's getting better because of it.