Генерация результатов запросов
Вот несколько путей для генерации результатов запросов:
result()
Эта функция возвращает результат запроса в виде массива объектов, или пустой массив в случае неудачи. Обычно вы будете использовать цикл foreach, к примеру так:
	$query = $this->db->query("YOUR QUERY");
	
	foreach ($query->result() as $row)
	{
	   echo $row->title;
	   echo $row->name;
	   echo $row->body;
	}
	Выше result() это алиас result_object().
Если вы выполняете запросы, которые могут не производить результата, вы должны протестировать его:
	$query = $this->db->query("YOUR QUERY");
	
	if ($query->num_rows() > 0)
	{
	   foreach ($query->result() as $row)
	   {
	      echo $row->title;
	      echo $row->name;
	      echo $row->body;
	   }
	}
	
	Вы также можете передать строку в result(), которая представляет собой класс для создания экземпляров для каждого объекта результата (примечание: класс должен быть загружен)
	$query = $this->db->query("SELECT * FROM users;");
	
	foreach ($query->result('User') as $row)
	{
	   echo $row->name; // аттрибуты вызова
	   echo $row->reverse_name(); // или методы, определенные классом 'User'
	}
	
	result_array()
Эта функция возвращает результат запроса как обычный массив, или пустой массив, если результата нет. Обычно вы будете использовать ее в цикле foreach(), например так:
	$query = $this->db->query("YOUR QUERY");
	
	foreach ($query->result_array() as $row)
	{
	   echo $row['title'];
	   echo $row['name'];
	   echo $row['body'];
	}
	row()
Эта функция возвращает единственную строку результата. Если ваш результат вашего запроса состоит более, чем из одной строки, она вернет первую. Результат возвращается как объект. Вот пример использования:
	$query = $this->db->query("YOUR QUERY");
	
	if ($query->num_rows() > 0)
	{
	   $row = $query->row();
	
	   echo $row->title;
	   echo $row->name;
	   echo $row->body;
	}
	
	Вы можете уточнить количество возвращаемых строк в первом параметре:
$row = $query->row(5);
	Также вы можете добавить второй строковый параметр, который будет именем класса для экземляра строки:
	$query = $this->db->query("SELECT * FROM users LIMIT 1;");
	
	$query->row(0, 'User')
	echo $row->name; // аттрибуты вызова
	echo $row->reverse_name(); // или методы, определенные классом 'User'
	
	row_array()
Идентично функции выше row(), за исключением того, что возвращает массив:
	$query = $this->db->query("YOUR QUERY");
	
	if ($query->num_rows() > 0)
	{
	   $row = $query->row_array();
	
	   echo $row['title'];
	   echo $row['name'];
	   echo $row['body'];
	}
	
	Вы можете уточнить количество возвращаемых строк в первом параметре:
$row = $query->row_array(5);
	Вдобавок вы можете гулять вперед-назад-к первому-к последнему по вашим результатам:
	$row = $query->first_row()
	$row = $query->last_row()
	$row = $query->next_row()
	$row = $query->previous_row()
По умолчанию они возвращают объекты, если вы не поместите слово «array» в параметр:
	$row = $query->first_row('array')
	$row = $query->last_row('array')
	$row = $query->next_row('array')
	$row = $query->previous_row('array')
Функции помощника результата
$query->num_rows()
Количество строк, возвращенных в результате выполнения запроса. Примечание, в этом примере $query — это переменная, которая ассоциирована с объектом результата запроса:
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_rows();
$query->num_fields()
Количество полей (столбцов), возвращенных запросом. Убедитесь, что вы применяете эту функцию к объекту результата:
$query = $this->db->query('SELECT * FROM my_table');
echo $query->num_fields();
$query->free_result()
Это высвободит память, занятую результатом, и удалит идентификатор ресурса результата. Обычно PHP высвобождает память при завершении выполнения скрипта. Однако, если вы запускаете множество запросов в определенном скрипте, вы можете пожелать освобождать результаты после каждого использования, для того, чтобы сократить потребление памяти. Пример:
$query = $this->db->query('SELECT title FROM my_table');
foreach ($query->result() as $row)
{
   echo $row->title;
}
$query->free_result();  // Объект результата $query более не доступен
$query2 = $this->db->query('SELECT name FROM some_table');
$row = $query2->row();
echo $row->name;
$query2->free_result();  // Объект результата $query2 более не доступен
