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.
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']);
vous pouvez utiliser row () au lieu de result ().
$this->db->where('id', '3');
$q = $this->db->get('my_users_table')->row();
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'];
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.
Vous l'utilisez simplement sur une seule ligne.
$query = $this->db->get_where('mytable',array('id'=>'3'));