Codeigniter $ this-> db-> get (), как вернуть значения для определенной строки? - PullRequest
20 голосов
/ 17 декабря 2011

Допустим, у меня есть таблица базы данных с тремя столбцами: ID, Имя и Возраст. Мне нужно найти пользователя с определенным (уникальным) идентификатором, а затем вернуть возраст. В настоящее время я использую следующий код

$this->db->where('id', '3');
$q = $this->db->get('my_users_table');

Как узнать возраст этого пользователя? Я думаю, что я должен использовать

$q->result()

Но не уверен, как использовать его с одной строкой.

Ответы [ 5 ]

55 голосов
/ 17 декабря 2011

РЕШЕНИЕ ОДИН

$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']);
6 голосов
/ 27 декабря 2013

вы можете использовать row () вместо result ().

$this->db->where('id', '3');
$q = $this->db->get('my_users_table')->row();
1 голос
/ 01 мая 2016

Доступ к одной строке

//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'];
0 голосов
/ 12 декабря 2017

Если вы получаете данные динамически, например, когда вам нужны данные, основанные на пользователях, вошедших в систему с использованием их идентификатора, рассмотрите следующий пример кода для Нет активной записи:

 $this->db->query('SELECT * FROM my_users_table WHERE id = ?', $this->session->userdata('id'));

 return $query->row_array();

Это вернет определенныйстрока на основе ваших данных сеанса пользователя.

0 голосов
/ 08 января 2017

Вы просто используете это в одном ряду.

$query = $this->db->get_where('mytable',array('id'=>'3'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...