web-dev-qa-db-fra.com

Codeigniter $ this-> db-> get (), comment puis-je retourner des valeurs pour une ligne spécifique?

Disons que j'ai une table de base de données avec trois colonnes: ID, nom et âge. Je dois trouver l'utilisateur avec un ID spécifique (unique), puis retourner l'âge. Actuellement, j'utilise le code suivant

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

Comment puis-je obtenir l'âge de cet utilisateur? Je pense que je dois utiliser

$q->result()

Mais je ne sais pas comment l'utiliser avec une seule ligne.

20
Ayub

SOLUTION UN

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

DEUXIÈME SOLUTION

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

TROISIÈME SOLUTION

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

QUATRE SOLUTION (PAS D'ENREGISTREMENT ACTIF)

$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

vous pouvez utiliser row () au lieu de result ().

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

Accès à une seule ligne

//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

Dans le cas où vous obtenez dynamiquement vos données, par exemple lorsque vous avez besoin de données basées sur l'utilisateur connecté par son identifiant, considérez l'exemple de code suivant pour un enregistrement non actif:

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

 return $query->row_array();

Cela renverra une ligne spécifique en fonction de vos données de session définies par l'utilisateur.

0
David Martin

Vous l'utilisez simplement sur une seule ligne.

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