it-swarm-pt.tech

Codeigniter $ this-> db-> get (), como faço para retornar valores para uma linha específica?

Digamos que eu tenha uma tabela de banco de dados com três colunas: ID, Nome e Idade. Preciso encontrar o usuário com um ID específico (exclusivo) e retornar a idade. Atualmente, estou usando o seguinte código

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

Como faço para obter a idade deste usuário? Acho que tenho que usar

$q->result()

Mas não sei como usá-lo com uma linha.

20
Ayub

SOLUÇÃO UM

$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']);

SOLUÇÃO DOIS

// 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']);

SOLUÇÃO TRÊS

$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']);

SOLUÇÃO QUATRO (SEM REGISTRO ATIVO)

$q = $this->db->query('SELECT age FROM my_users_table WHERE id = ?',array(3));
$data = array_shift($q->result_array());
echo($data['age']);
55
Dalen

você pode usar row () em vez de result ().

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

Acessando uma única linha

//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'];
1
mobby

No caso de você estar recebendo seus dados dinamicamente, por exemplo, quando precisar de dados com base no usuário conectado por seu ID, considere o seguinte exemplo de código para um No Active Record:

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

 return $query->row_array();

Isso retornará uma linha específica com base nos dados da sessão definidos pelo usuário.

0
David Martin

Você simplesmente usa isso em uma linha.

$query = $this->db->get_where('mytable',array('id'=>'3'));
0
Waseem shah