CodeIgniter – retourne une seule ligne?

Pour le moment, si je fais une requête sur la firebase database qui ne doit renvoyer qu’une ligne, en utilisant:

...query stuff... $query = $this->db->get(); $ret = $query->result(); return $ret[0]->campaign_id; 

Existe-t-il une fonction CodeIgniter pour renvoyer la première ligne? quelque chose comme $query->row();

Ou mieux serait la possibilité, s’il n’y avait qu’une seule ligne, d’utiliser directement l’object de requête.

Par exemple $query->campaign_id;

Vous venez de répondre à votre propre question 🙂 Vous pouvez faire quelque chose comme ceci:

 $query = $this->db->get(); $ret = $query->row(); return $ret->campaign_id; 

Vous pouvez en savoir plus à ce sujet ici: http://www.codeigniter.com/user_guide/database/results.html

C’est mieux car cela vous donne un résultat sur une seule ligne:

 $this->db->query("Your query")->row()->campaign_id; 

Pour append à ce que Alisson a dit, vous pouvez vérifier si une ligne est renvoyée.

 // Query stuff ... $query = $this->db->get(); if ($query->num_rows() > 0) { $row = $query->row(); return $row->campaign_id; } return null; // or whatever value you want to return for no rows found 

Pour que le code soit clair que vous avez l’intention d’obtenir la première ligne, CodeIgniter vous permet maintenant d’utiliser:

 if ($query->num_rows() > 0) { return $query->first_row(); } 

Récupérer la première ligne.

 $this->db->get()->row()->campaign_id; 

Changez seulement en deux lignes et vous obtenez réellement ce que vous voulez.

 $query = $this->db->get(); $ret = $query->row(); return $ret->campaign_id; 

essayez-le

Nous pouvons obtenir une seule limite d’utilisation dans la requête

 $query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset); 

la classe receipt_model étend CI_Model {

  public function index(){ $this->db->select('*'); $this->db->from('donor_details'); $this->db->order_by('donor_id','desc'); $query=$this->db->get(); $row=$query->row(); return $row; } 

}