Причина, по которой это не работает, в том, что вы никогда не получите total_rows. Вы получаете total_rows через этот запрос, но у него уже есть смещение и предел:
$sql .= " LIMIT ".$limit.", ".$offset.";";
$query = $this->db->query($sql);
Чтобы исправить это, вы должны добавить функцию к вашей модели:
function get_all_properties()
{
return $this->db->get('properties');
}
Тогда в вашем контроллере вместо:
$config['total_rows'] = $this->session->userdata('num_rows');
Do:
$config['total_rows'] = $this->properties_model->get_all_properties()->num_rows();
Это должно исправить вашу нумерацию страниц. Помимо этого в вашем коде есть некоторые странные вещи. Например. return FALSE;
в get_properties
НИКОГДА не выполнится. И почему вы храните так много данных в сессиях. Это не обязательно и не очень хорошая идея, на мой взгляд.