Codeigniter $this-> db-> get(), как мне вернуть значения для определенной строки?
Скажем, у меня есть таблица базы данных с тремя столбцами: ID, Name и Age.
Мне нужно найти пользователя с определенным (уникальным) идентификатором, а затем вернуть возраст. В настоящее время я использую следующий код
$this->db->where('id', '3');
$q = $this->db->get('my_users_table');
Как мне получить возраст для этого пользователя? Я думаю, что я должен использовать
$q->result()
Но не уверен, как использовать его с одной строкой.
Ответы
Ответ 1
РЕШЕНИЕ ОДИН
$this->db->where('id', '3');
// here we select every column of the table
$q = $this->db->get('my_users_table');
$data = $q->result_array();
echo($data[0]['age']);
РЕШЕНИЕ ДВА
// here we select just the age column
$this->db->select('age');
$this->db->where('id', '3');
$q = $this->db->get('my_users_table');
$data = $q->result_array();
echo($data[0]['age']);
РЕШЕНИЕ ТРЕХ
$this->db->select('age');
$this->db->where('id', '3');
$q = $this->db->get('my_users_table');
// if id is unique, we want to return just one row
$data = array_shift($q->result_array());
echo($data['age']);
РЕШЕНИЕ ЧЕТВЕРТАЯ (БЕЗ АКТИВНОГО ЗАПИСИ)
$q = $this->db->query('SELECT age FROM my_users_table WHERE id = ?',array(3));
$data = array_shift($q->result_array());
echo($data['age']);
Ответ 2
вы можете использовать row() вместо result().
$this->db->where('id', '3');
$q = $this->db->get('my_users_table')->row();
Ответ 3
Доступ к одной строке
//Result as an Object
$result = $this->db->select('age')->from('my_users_table')->where('id', '3')->limit(1)->get()->row();
echo $result->age;
//Result as an Array
$result = $this->db->select('age')->from('my_users_table')->where('id', '3')->limit(1)->get()->row_array();
echo $result['age'];
Ответ 4
Вы просто используете это в одной строке.
$query = $this->db->get_where('mytable',array('id'=>'3'));
Ответ 5
Если вы хотите динамически получать свои данные, например. Когда вам нужны данные на основе пользователя, зарегистрированного по их использованию, рассмотрите следующий пример кода для Нет активной записи:
$this->db->query('SELECT * FROM my_users_table WHERE id = ?', $this->session->userdata('id'));
return $query->row_array();
Это приведет к возврату определенной строки на основе ваших заданных данных сеанса пользователя.