Назначить результат get_viewed_books
некоторому ключу в $data
:
$this->add_views($book_id);
$data['viewed_books'] = $this->get_viewed_books($book_id); // here
$this->load->view('templates/header', $data);
$this->load->view('books/view', $data);
$this->load->view('templates/footer');
Теперь в шаблоне у вас есть viewed_books
переменная / ключ, и вы можете перебирать его.
И, конечно, ваш get_viewed_books($book_id)
должен вернуть результат , а не присваивать его какой-либо неизвестной $data
переменной:
public function get_viewed_books($book_id) {
return $this->Book_Model->get_viewed_books($book_id);
}